組建指令碼
重要
Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到它完全淘汰為止,但有數個建議您考慮移轉至的建議替代方案。
注意
建置腳本可讓您自定義組建;但您在該程式期間發現的問題超出 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 會執行分析來編製存放庫樹狀目錄的索引,並更新組建定義。
複製後
複製後腳本會在複製存放庫之後立即執行,但在我們最後執行任何其他動作之前。
若要在複製後執行文稿,請在存放庫中的項目檔旁新增下列檔案:
appcenter-post-clone.sh (Bash for iOS & 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-cli
appcenter-post-clone.ps1(適用於 UWP 的 PowerShell)
建置前
建置前腳本會在實際建置開始之前執行。 針對 React Native 應用程式,腳本會在產生來源對應之前執行。 針對其他平臺,它會在安裝相依性之後執行,例如從 NuGet、CocoaPods 或 Carthage。
若要執行文稿預先建置,請在存放庫中的項目檔旁新增下列檔案:
appcenter-pre-build.sh (Bash for iOS & 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 fi
appcenter-pre-build.ps1(適用於 UWP 的 PowerShell)
建置後
建置後文本會在建置完成後執行,並將所有必要的成品複製到輸出目錄。 即使建置失敗,建置後腳本仍會執行。
若要在建置後執行文稿,請在存放庫中的項目檔旁新增下列檔案:
appcenter-post-build.sh iOS & Android) (Bash
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 fi
appcenter-post-build.ps1(適用於 UWP 的 PowerShell)
環境變數
您可以使用預先定義、自定義或腳本內環境變數來協助撰寫組建腳本,如需詳細資訊,請參閱我們的 環境變數指南 。