使用 VSTS 任务将 UWP 应用分发到 App Center(又名 Mobile Center)
Distribute UWP App to App Center (aka Mobile Center) using VSTS Task
我目前正在与 Microsoft 合作解决您的一个 UWP 应用程序在启动后崩溃的情况。在围绕 msbuild 进行大量调试之后,我认识到只有当生成的 appxbundle 文件分布在 Microsoft App Center(又名 Mobile Center)上时才会发生崩溃。这也只有当 appxbundle 使用内置任务 "App Center distribute" 的 VSTS 上传到 App Center 时才会出现这种情况。
当我使用 App Center 门户手动上传 appxbundle 时,一切正常,即使通过 App Center 使用也是如此。
此外,我注意到 appxbundle 在构建后大小为 18MB,但使用 VSTS 任务上传到 App Center 时大小仅为 14MB(大小显示在 App Center 门户中)。下载后文件没有损坏,但似乎丢失了捆绑包中的一些文件 - 这个任务在做什么?打开和修改 appxbundle?嗯嗯。
有人遇到类似问题吗?
我暂时解决了这个问题,方法是用 App Center CLI 和一个简单的 powershell 脚本替换内置任务来存档它。
param(
[Parameter(Mandatory=$true)]
[String]
$Token,
# Name of the App, e.g. 'org/app'
[Parameter(Mandatory=$true)]
[String]
$App,
# Name of the distribution Group, e.g. 'Collaborators'
[Parameter(Mandatory=$true)]
[String]
$Group
)
$binaryFile = (Get-ChildItem MyApp_*_x64.appxbundle -Recurse).FullName
appcenter distribute release -g $Group -f "$binaryFile" -a $App --debug --token $Token
要使此脚本运行,您需要最新版本的 App Center CLI,可在 here.
中找到
在存在 NPM 包管理器的构建代理上,您可以简单地 运行 npm install -g appcenter-cli
安装最新版本。之后应该执行上面的脚本。
我是这样使用@SebastianZolg的解决方案的:
- task: PowerShell@2
displayName: 'Distribute via AppCenter'
inputs:
targetType: 'filePath'
filePath: 'AppCenterDistributeThroughCli.ps1'
arguments: xxxMyTokenxxxxx MyAppCenterAppSlug "Collaborators"
workingDirectory: '$(Build.ArtifactStagingDirectory)\AppxPackages'
而AppCenterDistributeThroughCli.ps1
是@SebastianZolg的脚本。
我目前正在与 Microsoft 合作解决您的一个 UWP 应用程序在启动后崩溃的情况。在围绕 msbuild 进行大量调试之后,我认识到只有当生成的 appxbundle 文件分布在 Microsoft App Center(又名 Mobile Center)上时才会发生崩溃。这也只有当 appxbundle 使用内置任务 "App Center distribute" 的 VSTS 上传到 App Center 时才会出现这种情况。
当我使用 App Center 门户手动上传 appxbundle 时,一切正常,即使通过 App Center 使用也是如此。
此外,我注意到 appxbundle 在构建后大小为 18MB,但使用 VSTS 任务上传到 App Center 时大小仅为 14MB(大小显示在 App Center 门户中)。下载后文件没有损坏,但似乎丢失了捆绑包中的一些文件 - 这个任务在做什么?打开和修改 appxbundle?嗯嗯。
有人遇到类似问题吗?
我暂时解决了这个问题,方法是用 App Center CLI 和一个简单的 powershell 脚本替换内置任务来存档它。
param(
[Parameter(Mandatory=$true)]
[String]
$Token,
# Name of the App, e.g. 'org/app'
[Parameter(Mandatory=$true)]
[String]
$App,
# Name of the distribution Group, e.g. 'Collaborators'
[Parameter(Mandatory=$true)]
[String]
$Group
)
$binaryFile = (Get-ChildItem MyApp_*_x64.appxbundle -Recurse).FullName
appcenter distribute release -g $Group -f "$binaryFile" -a $App --debug --token $Token
要使此脚本运行,您需要最新版本的 App Center CLI,可在 here.
中找到在存在 NPM 包管理器的构建代理上,您可以简单地 运行 npm install -g appcenter-cli
安装最新版本。之后应该执行上面的脚本。
我是这样使用@SebastianZolg的解决方案的:
- task: PowerShell@2
displayName: 'Distribute via AppCenter'
inputs:
targetType: 'filePath'
filePath: 'AppCenterDistributeThroughCli.ps1'
arguments: xxxMyTokenxxxxx MyAppCenterAppSlug "Collaborators"
workingDirectory: '$(Build.ArtifactStagingDirectory)\AppxPackages'
而AppCenterDistributeThroughCli.ps1
是@SebastianZolg的脚本。