签约商店&在带有msbuild的CI管道中,侧载UWP App的方式不同

时间:2018-01-11 18:34:44

标签: uwp windows-store-apps

我们在Windows应用商店中提供了一个UWP应用。此外,对于某些企业客户而言,相同的应用程序将被侧载。 beta测试者。

由于几个原因,我们需要以不同的方式为app&bb签署appxbundle sideloaded版本,意味着我们有另一个侧面加载证书。

虽然UWP应用程序已经与商店关联,并且包裹清单指向商店密钥,但我想知道我们是否有办法建立一次(节省时间)但签署在我们的CI管道中使用msbuild / vsstudio以不同方式输出两次

我们是否需要拆分构建过程并使用makeappx和sign工具来实现这一目标?另一种方法是动态修改package.appxmanifest并再次构建它。

有更好的方法吗?

由于

2 个答案:

答案 0 :(得分:1)

  

我想知道是否有一种方法可以构建一次(节省时间),但在CI管道中使用msbuild / vsstudio对输出进行两次不同的签名。

不,因为您需要修改清单中的发布商信息,以便您可以使用其他证书对其进行签名。

  

有更好的方法吗?

我建议您创建两个具有相同功能的不同项目,一个用于侧载,另一个用于发布到Windows应用商店,以便您可以更方便地管理它们。如果您只使用一个项目,则您的应用程序版本号可能难以区分,因为每次创建包时,版本号都会增加。此外,如果您有更新版本,则无需始终更改清单发布者信息。

答案 1 :(得分:0)

在考虑了各种选项之后,我们选择了两次一个项目

第一次构建用于存储,第二次用于侧载。

在运行之间,我们使用这个简单的脚本更新发布者,然后我们再次触发相同的构建:

Param(
[String]$projectFolder,
[String]$project,
[String]$publisher 
)

# -------------------------------- Update the manifest file --------------------------------
$manifestFile = Get-Item "$projectFolder\$project\Package.appxmanifest" 
[XML]$manifest = get-content $manifestFile
$manifest.Package.Identity.Publisher = $publisher
$manifest.Save($manifestFile)

此外,您需要为msbuild命令提供覆盖以匹配新证书,如下所示:

 /p:PackageCertificateKeyFile=xxx.pfx /p:PackageCertificateThumbprint=xxx