在Microsoft Store上发布字体

从某个版本开始,Windows 10应用商店Microsoft Store上可以下载字体了。但如何在Microsoft Store上发布字体一直是个未解之谜。本文将介绍在Microsoft Store上发布字体的完整步骤。

要在Microsoft Store上发布字体,必需条件包括:

  • Visual Studio 2017(安装组件“Universal Windows Platform开发工具”)
  • Windows开发人员账户

发布字体主要包含两步:将字体打包为appx或msix程序包,以及将程序包发布到Microsoft Store。

将字体打包为程序包

在Visual Studio中打开或者创建一个UWP项目。右键单击“解决方案资源管理器”中的项目名称,选择“添加”-“现有项”,将需要打包的字体文件添加到项目中。右键单击“解决方案资源管理器”中新添加的字体文件,选择“属性”,将“生成操作”改为“内容”,这样在生成的应用程序包中将会包含该字体文件。

然后,需要在应用程序包的清单文件中声明该字体文件。在“解决方案资源管理器”中右键单击清单文件“Package.appxmanifest”,选择“查看代码”,来通过文本编辑器编辑清单文件。在清单文件中的根元素——“Package”元素内添加定义命名空间“uap4”:

<Package
    ...
    xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4">

在“Package”元素中的“IgnorableNamespaces”属性中增加一项“uap4”,完成后该属性可能形如:

<Package
    ...
    IgnorableNamespaces="uap mp uap4">

至此,清单文件中的Package元素应类似:

<Package
    xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
    xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
    xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
    xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
    IgnorableNamespaces="uap mp uap4">

在“Package”中的“Applications”-“Application”-“Extensions”元素内添加子元素“uap4:Extension”,并按照如下格式在该元素内声明所有的字体文件:

<uap4:Extension Category="windows.sharedFonts">
  <uap4:SharedFonts>
    <uap4:Font File="{字体文件1}" />
    <uap4:Font File="{字体文件2}" />
    <uap4:Font File="{字体文件3}" />
  </uap4:SharedFonts>
</uap4:Extension>

整个Package.appxmanifest文件大致内容如下:

<?xml version="1.0" encoding="utf-8"?>
<Package
    ...
    xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4" 
    IgnorableNamespaces="uap mp uap4">
  ...
  <Applications>
    <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="SarasaGothic.App">
      ...
      <Extensions>
        <uap4:Extension Category="windows.sharedFonts">
          <uap4:SharedFonts>
            <uap4:Font File="sarasa-regular.ttc" />
          </uap4:SharedFonts>
        </uap4:Extension>
      </Extensions>
    </Application>
  </Applications>
  ...
</Package>

此时,在Visual Studio中点击“生成”-“部署解决方案”安装该应用程序后,声明的字体文件也会被安装到系统中,可在各种软件中使用。右键单击“解决方案资源管理器”中的项目名称,点击“创建应用程序包”,按向导进行,即可得到用于上传到Microsoft Store的appxupload或msixupload文件,与普通UWP应用无异。

更多关于应用清单文件中sharedFonts元素的信息,请访问:uap4:SharedFonts – Windows UWP Applications | Microsoft Docs

将程序包发布到Microsoft Store

Windows开发人员仪表板,在应用列表中选择之前创建应用程序包时预留的应用名称,按应用提交流程,将需要的信息填写完成后之后,到上传应用程序包的时候会遇到错误:“You can’t use extension windows.sharedFonts with this account.”。一般的开发人员账户时不具备使用sharedFonts功能的权限的,也就是说无法上传具有安装字体功能的应用程序包。但是通过联系Windows应用商店客服,可以申请此权限的开通。

访问Windows developer support,选择“Contact us”,在分类中选择“Dashboard issue”-“App submissions”-“Package management”或者类似的选择,点击最右侧的“Submit an incident”,来说明遇到的情况并提交支持请求。几天之内,相关的支持人员就会回复右键,询问必要的信息,包括:该应用的主要功能、该应用支持的操作系统版本、该应用需要此权限的原因,并且可能会要求通过“安全文件传输”功能发送需要上传的应用程序包。如无意外的话,支持人员会开启相关的账户权限,然后就能正常上传应用程序包并完成发布操作了。

使用“安全文件传输”功能,或者叫“File Transfer”功能的时候,如果在浏览器中已经登录过Microsoft账户,会出现“An error occurred”提示。建议出现这样的问题时,尝试开启新的InPrivate或无痕浏览窗口来访问文件传输功能。另外,由于该上传功能稳定性有待提高,建议在与支持人员联系时不要上传包含过多字体的应用程序包(否则可能会遇到多次上传失败),上传仅包含一个字体的程序包供测试即可。

完成后,用户就可以直接在Microsoft Store中搜索并下载该字体,并自动安装到系统中。下面就是一款发布到Microsoft Store的编程字体“更纱黑体”,可以在Windows命令提示符中使用。

留言

有想法?请给我们留言!您的留言不会直接显示在网站内。