【问题标题】:Can I publish the StoreKey.pfx of an UWP application我可以发布 UWP 应用程序的 StoreKey.pfx
【发布时间】:2016-12-19 17:17:07
【问题描述】:
我有一个开源 Windows 商店应用程序 (UWP)。当我将应用程序与商店关联时,会创建一个 Package.StoreAssociation.xml 和一个 <AppName>_StoreKey.pfx 以及对我的 Package.appxmanifest 的一些修改(身份标签;名称和发布者属性)。
- 我能否将该信息提交到公共 git 存储库(证书必须在存储库中,因为我想使用 AppVeyor 构建包)?
- 我应该加密它吗?
- 如果证书泄露,我可以撤销证书吗?
- 对 appxmanifest 的更改是否敏感?
【问题讨论】:
标签:
windows-store-apps
uwp
windows-store
【解决方案1】:
我可以将该信息提交到公共 git 存储库(证书必须在存储库中,因为我想使用 AppVeyor 构建包)?
对于公共 git 存储库,不应提交存储密钥 .pfx 文件(添加到 .gitignore 文件)。如果您想使用 CI 系统,请在 CI 后端创建一个私有存储库或将 .pfx 文件附加到您克隆的项目中。
我应该加密它吗?
此文件已加密,用于在提交到 Windows 应用商店之前对您的应用进行签名,另请参阅 How to create an app package signing certificate
如果证书泄露,我可以撤销证书吗?
您需要保留一个新的应用名称,请参阅here
对 appxmanifest 的更改是否敏感?
取决于您所做的更改,这对于 .packagemanifest 文件中的身份和包信息非常重要。见App package manifest
【解决方案2】:
您不应将<AppName>_StoreKey.pfx 文件包含到您的公共存储库中。但是您仍然可以使用 AppVeyor CI。
1.更改您的*.csproj 文件以包含此信息。
<PropertyGroup Condition="('$(Configuration)' == 'Debug') Or ('$(UseTemporarySignCert)' == 'true')">
<PackageCertificateKeyFile><AppName>_TemporaryKey.pfx</PackageCertificateKeyFile>
</PropertyGroup>
<PropertyGroup Condition="('$(Configuration)' == 'Release') And ('$(UseTemporarySignCert)' != 'true')">
<PackageCertificateThumbprint><!-- Your <AppName>_StoreKey.pfx Thumbprint Here --></PackageCertificateThumbprint>
</PropertyGroup>
2.将您的<AppName>_StoreKey.pfx 证书导入到:存储位置 - 当前用户,证书存储 - 个人
3.将值为true 的UseTemporarySignCert 环境变量添加到您的AppVeyor 项目中。
因此,您将能够在没有<AppName>_StoreKey.pfx 的发布模式下自行构建签名项目,然后发布到商店。
AppVeyor 将与 TemporaryKey.pfx 一起使用。