生成脚本
备注
使用生成脚本可以自定义生成;但在此过程中发现的问题超出了支持App Center范围。 如果其中一个脚本失败,则整个生成将报告失败,即使到该时间点的主生成成功。
可以添加在生成期间在预定义阶段运行的自定义生成脚本:克隆后、预生成和生成后。 将采用下面指定的格式的脚本放在项目级 (、、 或) 文件或模块级 .xcodeproj .csproj (.sln package.json build.gradle) 文件旁边,该文件是在生成配置中选择的,我们将以自定义生成步骤的形式运行它们。
在 App Center,非 UWP 应用构建在 macOS 上,因此它们可以使用 Bash 脚本。 UWP 应用在 Windows 上构建,因此可以使用 PowerShell 脚本。 许多类似的任务都可以采用任一脚本格式完成,但如果在两者之间迁移,可能需要执行一些转换。 例如,macOS Bash 要求使用 UNIX 样式的行尾 (LF) 。
可以在专用公共 GitHub 存储库 上找到生成脚本 示例的集合。 请随意使用示例脚本、对其进行修改,或使用最有用的脚本提交新的拉取请求,供社区其他人使用。
警告
如果App Center首次检测生成脚本,或者更改脚本的位置,或者更改 CocoaPods 的存储位置;必须通过单击生成配置中的"保存"或"保存&生成"按钮来应用更改。 执行此操作时,App Center分析来为存储库树编制索引并更新生成定义。

克隆后
克隆后脚本在克隆存储库后立即运行,但在我们最后执行任何其他操作之前运行。
若要在克隆后运行脚本,在存储库中的项目文件旁边添加以下文件:
适用于 iOS 的 appcenter-post-clone.sh (Bash & Android)
#!/usr/bin/env bash # Example: Clone a required repository git clone https://github.com/example/SomeProject # Example: Install App Center CLI npm install -g appcenter-cliappcenter-post-clone.ps1 UWP (PowerShell)
预生成
预先生成脚本在实际生成开始之前运行。 若要对本机应用做出响应,请在生成源映射之前运行该脚本。 对于其他平台,它在安装了依赖项(例如 NuGet、CocoaPods 或 Carthage)之后运行。
若要运行预先生成的脚本,请在存储库中的项目文件旁添加以下文件:
适用于 iOS 的 appcenter-pre-build.sh (Bash & Android)
#!/usr/bin/env bash # Example: Change bundle name of an iOS app for non-production if [ "$APPCENTER_BRANCH" != "main" ]; then plutil -replace CFBundleDisplayName -string "\$(PRODUCT_NAME) Beta" $APPCENTER_SOURCE_DIRECTORY/MyApp/Info.plist fiappcenter-pre-build.ps1 UWP (PowerShell)
后期生成
生成后脚本在生成完成后运行,并将所有必需的项目复制到输出目录。 生成后脚本将运行,即使生成失败也是如此。
若要在生成后运行脚本,请在存储库中的项目文件旁添加以下文件:
适用于 iOS 的 appcenter-post-build.sh (Bash & Android)
if [ "$AGENT_JOBSTATUS" == "Succeeded" ]; then HOCKEYAPP_API_TOKEN={API_Token} HOCKEYAPP_APP_ID={APP_ID} # Example: Upload main branch app binary to HockeyApp using the API if [ "$APPCENTER_BRANCH" == "main" ]; then curl \ -F "status=2" \ -F "ipa=@$APPCENTER_OUTPUT_DIRECTORY/MyApps.ipa" \ -H "X-HockeyAppToken: $HOCKEYAPP_API_TOKEN" \ https://rink.hockeyapp.net/api/2/apps/$HOCKEYAPP_APP_ID/app_versions/upload else echo "Current branch is $APPCENTER_BRANCH" fi fiappcenter-post-build.ps1 UWP (PowerShell)
环境变量
您可以使用预定义的、自定义的或脚本内的环境变量来帮助编写您的生成脚本,有关详细信息,请参阅我们的 环境变量指南 。