簽署行動應用程式
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
開發 Android 或 Apple 作業系統的應用程式時,您最終將需要管理簽署憑證,並在 Apple 應用程式的情況下佈 建配置檔。 本文說明如何安全地管理它們以簽署和布建您的應用程式。
提示
使用 Microsoft 裝載的 Linux、macOS 或 Windows 組建代理程式,或設定您自己的代理程式。 請參閱 建置和發行代理程式。
此文章涵蓋:
簽署 Android 應用程式
請遵循下列步驟來簽署 Android 應用程式,同時保護您的簽署憑證安全:
首先,取得包含簽署憑證的密鑰存放區檔案。 Android 檔案說明產生金鑰存放區檔案及其對應金鑰的程式。
從 Android 或 Xamarin.Android 組建範本建立組建管線。 或者,如果您已經有組建管線,請在 建置 APK 的工作之後新增 Android 簽署 工作。
尋找 Android 簽署工作的 [簽署 APK ] 複選框並加以啟用。
在 [ 金鑰存放區檔案 ] 字段旁,選取設定圖示,並將密鑰存放區檔案上傳至 安全檔案庫。 上傳期間,您的金鑰存放區將會經過加密並安全地儲存。
將金鑰存放區上傳至安全檔案庫之後,請在 [金鑰存放區檔案] 下拉式清單中選取它。
移至 [ 變數] 索引標籤,並新增下列變數。 在 [ 值] 資料行中,輸入您的 金鑰存放區密碼、 金鑰別名和 密鑰密碼。
keystore-password:未加密密鑰存放區檔案的密碼。 請務必選取 鎖定 圖示。 這會保護您的密碼,並在記錄中遮蔽密碼。
key-alias:您所產生簽署憑證的密鑰別名。
key-password:與指定別名相關聯的密鑰密碼。 同樣地,請務必選取 鎖定 圖示。
返回 [ 工作] 索引標籤,並在簽署選項中參考新建立變數的名稱。
儲存您的組建管線,而且您已全部設定! 任何組建代理程式現在都能夠安全地簽署您的應用程式,而不需要建置機器本身的任何憑證管理。
簽署 Apple iOS、macOS、tvOS 或 watchOS 應用程式
若要讓 Xcode 或 Xamarin.iOS 組建簽署和布建您的應用程式,它需要存取您的 P12 簽署憑證和一或多個佈建配置檔。 下列各節說明如何取得這些檔案。
取得 P12 簽署憑證
建立開發或散發簽署憑證之後,請使用macOS上的 Xcode 或 Keychain 存取應用程式將它匯出至 .p12
檔案。
若要使用 Xcode 8 或更低版本匯出,請移至 [Xcode>喜好設定...>帳戶 並選取您的Apple開發人員帳戶。
選取 [ 檢視詳細數據...],以滑鼠右鍵按下您想要導出的簽署身分識別,然後選取 [ 導出...]。
輸入檔名和密碼。 記下密碼,因為稍後會用到密碼。
或者,請遵循在 macOS 上使用 Keychain Access 應用程式或在 Windows 上產生簽署憑證的類似程式。 如果您想要使用此方法,請使用本文所述的程式。
取得布建配置檔
除非您的應用程式使用自動簽署,否則您可以從Apple Developer入口網站下載應用程式佈建配置檔。 瞭解如何在Apple Developer入口網站中下載布建配置檔。
您也可以使用 Xcode 來存取安裝在 Mac 上的裝置。
使用 Xcode 8 或更低版本,移至 [Xcode>喜好設定...>帳戶並選取您的Apple開發人員帳戶。
以滑鼠右鍵按下您想要使用的布建配置檔,然後選取 [在 Finder 中顯示]。
將醒目提示的檔案從 Finder 複製到另一個位置,併為其提供描述性的檔名。
設定組建
建置有兩種建議方式可存取簽署憑證,以及用來簽署和布建應用程式的布建配置檔:
- 在組建期間安裝它們
- 在 macOS 組建代理程式上預安裝它們
選擇下列任一索引標籤以取得詳細數據。
當您沒有持續存取組建代理程式時,請使用這個方法,例如 託管的 macOS 代理程式。 P12 憑證和布建配置檔會安裝在組建的開頭,並在組建完成時移除。
在組建期間安裝 P12 憑證
可視化編輯器
- 在 Xcode 或 Xamarin.iOS 工作之前,將 [安裝 Apple 憑證 ] 工作新增至您的組建。
- 在 [ 憑證 (P12)] 字段旁,選取設定圖示,並將 P12 檔案上傳至 安全檔案庫。 上傳期間,您的憑證將會經過加密並安全地儲存。
- 將憑證上傳至安全檔案庫之後,請在 [憑證 (P12)] 下拉式清單中選取它。
- 移至 [ 變數] 索引標籤,並新增名為的
P12password
變數。 將其值設定為憑證的密碼。 請務必選取 鎖定 圖示。 這會保護您的密碼,並在記錄中遮蔽密碼。 - 返回 [工作] 索引標籤。在 [安裝 Apple 憑證] 工作的設定中,在 [憑證 (P12) 密碼] 欄位中參考新建立的變數,如下所示:
$(P12password)
YAML 範例
將您的 P12 檔案上傳至 安全檔案庫。 上傳期間,您的憑證將會經過加密並安全地儲存。
移至 [ 變數] 索引標籤,並新增名為的
P12password
變數。 將其值設定為憑證的密碼。 請務必選取 鎖定 圖示。 這會保護您的密碼,並在記錄中遮蔽密碼。在 Xcode 或 Xamarin.iOS 工作之前,將 [安裝 Apple 憑證 ] 工作新增至 YAML:
- task: InstallAppleCertificate@2 inputs: certSecureFile: 'my-secure-file.p12' # replace my-secure-file.p12 with the name of your P12 file. certPwd: '$(P12password)'
在組建期間安裝布建配置檔
可視化編輯器
- 在 Xcode 或 Xamarin.iOS 工作之前,將 [安裝 Apple 布建配置檔 ] 工作新增至您的組建。
- 針對 [ 布建設定檔位置 ] 選項,選擇 [安全檔案 ] (在 YAML 中,
secureFiles
。 - 在 [ 布建配置檔] 字段旁,選取設定圖示,並將布建配置檔檔案上傳至 安全檔案庫。 上傳期間,您的憑證將會經過加密並安全地儲存。
- 將憑證上傳至安全檔案庫之後,請在 [ 布建配置檔 ] 下拉式清單中選取它。
- 啟用標示為 建置後移除配置檔的複選框。 這可確保布建配置檔不會留在代理程式計算機上。
YAML 範例
將您的布建配置檔上傳至 安全檔案庫。 上傳期間,您的憑證將會經過加密並安全地儲存。
在 Xcode 或 Xamarin.iOS 工作之前,將 [安裝 Apple 布建配置檔 ] 工作新增至 YAML:
- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: 'my-provisioning-profile.mobileprovision' # replace my-provisioning-profile.mobileprovision with the name of your provisioning profile file.
[注意] 在組建 預設為 true 之後移除配置檔。
參考 Xcode 工作中的檔案
可視化編輯器
- 選取 Xcode 工作。
- 針對 [ 簽署樣式 ] 選項,選擇 [ 手動簽署]。
- 在 [ 簽署身分識別] 欄位中,輸入
$(APPLE_CERTIFICATE_SIGNING_IDENTITY)
。 此變數會自動由 您選取之憑證的 [安裝 Apple 憑證 ] 工作設定。 - 在 [ 布建設定檔 UUID ] 欄位中, 輸入
$(APPLE_PROV_PROFILE_UUID)
。 針對您選取的布建配置檔,[ 安裝 Apple 布建配置檔 ] 工作會自動設定此變數。
YAML 範例
- task: Xcode@5
inputs:
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
參考 Xamarin.iOS 工作中的檔案
可視化編輯器
- 選取 Xamarin.iOS 工作。
- 針對 [ 使用覆寫] 選項,選擇 [ 標識符]。
- 在 [ 簽署身分識別] 欄位中,輸入
$(APPLE_CERTIFICATE_SIGNING_IDENTITY)
。 此變數會自動由 您選取之憑證的 [安裝 Apple 憑證 ] 工作設定。 - 在 [ 布建設定檔 UUID ] 欄位中, 輸入
$(APPLE_PROV_PROFILE_UUID)
。 針對您選取的布建配置檔,[ 安裝 Apple 布建配置檔 ] 工作會自動設定此變數。
YAML 範例
- task: XamariniOS@2
inputs:
solutionFile: '**/*.iOS.csproj'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'
儲存您的組建管線,而且您已全部設定! 組建代理程式現在將能夠安全地簽署和布建您的應用程式。
常見問題集
我需要代理程式嗎?
您至少需要一個 代理程式 來執行組建或發行。
我有問題 如何進行疑難解答?
請參閱 針對組建和發行進行疑難解答。
我無法選取預設的代理程式集區,而且無法將組建或發行排入佇列。 如何修正此問題?
請參閱 代理程式集區。
我的 NuGet 推送工作失敗,發生下列錯誤:「錯誤:無法取得本機簽發者憑證」。 如何修正此問題?
可以透過新增受信任的根憑證來修正。 您可以將 NODE_EXTRA_CA_CERTS=file
環境變數新增至組建代理程式,也可以在您的管道中新增 NODE.EXTRA.CA.CERTS=file
工作變數。 如需此變數的詳細資料,請參閱 Node.js 文件。 如需在管道中設定變數的指示,請參閱在管道中設定變數。
我使用內部部署 TFS,但看不到其中一些功能。 為什麼呢?
部分功能僅適用於 Azure Pipelines ,但尚未提供內部部署。 如果您已 升級至最新版的 TFS,某些功能可在內部部署使用。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應