我们在Windows应用商店中提供了一个UWP应用。此外,对于某些企业客户而言,相同的应用程序将被侧载。 beta测试者。
由于几个原因,我们需要以不同的方式为app&bb签署appxbundle sideloaded版本,意味着我们有另一个侧面加载证书。
虽然UWP应用程序已经与商店关联,并且包裹清单指向商店密钥,但我想知道我们是否有办法建立一次(节省时间)但签署在我们的CI管道中使用msbuild / vsstudio以不同方式输出两次。
我们是否需要拆分构建过程并使用makeappx和sign工具来实现这一目标?另一种方法是动态修改package.appxmanifest并再次构建它。
有更好的方法吗?
由于
答案 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