組建指令碼

重要

Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到它完全淘汰為止,但有數個建議您考慮移轉至的建議替代方案。

深入瞭解支持時程表和替代方案。

注意

建置腳本可讓您自定義組建;但您在該程式期間發現的問題超出 App Center 支援的範圍。 如果其中一個腳本失敗,則即使主要組建到該點成功,整個組建仍會回報失敗。

您可以在建置期間於預先定義的階段新增自定義建置腳本: 複製后、建置 建置後、 建置後。 將下列格式的腳本放在專案層級 (.xcodeproj.csproj.slnpackage.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)

環境變數

您可以使用預先定義、自定義或腳本內環境變數來協助撰寫組建腳本,如需詳細資訊,請參閱我們的 環境變數指南