在 App Center 中設定 React Native iOS 組建
重要
Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到完全淘汰為止,但有數個建議的替代方案可以考慮移轉至。
App Center 可以建置以 React Native 0.34 版或更新版本撰寫 React Native 應用程式。
若要建置適用於 iOS 的 React Native 應用程式:
- 例如,連線到您的存放庫服務帳戶 (:Azure DevOps、Bitbucket、GitHub 或 VSTS) 。
- 選取您應用程式所在的存放庫和分支。
- 設定組建的專案或工作區,以及您想要建置的配置。
注意
若要讓應用程式在真實裝置上執行,組建必須以有效的布建配置檔和憑證簽署程序代碼。
1.連結您的存放庫
首先,將您的存放庫服務帳戶連線到 App Center。 一旦您的帳戶連線,請選取 iOS 專案所在的存放庫。 您必須擁有存放庫的管理員和提取許可權。
2.選取分支
選取存放庫之後,請選取您要建置的分支。 根據預設,所有作用中的分支都會列出。
3.設定您的第一個組建
第一次建置之前,必須設定 React Native 專案。
3.1. Project
選取項目的 package.json
。 App Center 會自動偵測相關聯的 Xcode 專案/工作區。
3.2. Xcode 版本
從下拉式清單中選取要執行組建的 Xcode 版本。
如果切換為 [使用舊版建置系統] On
,則舊版建置系統將會使用任何專案或工作區設定。
如果切換為 [使用舊版組建系統] Off
,則會使用來自專案或工作區設定的組建系統組態。
注意
- 工作區設定應認可至存放庫
- 如果未認可工作區設定,則會使用新式組建系統
3.3. Node.js 版本
選取要用於組建 Node.js 版本。 深入瞭解 如何選取 Node.js 版本
3.4. 建置觸發程式
根據預設,每當開發人員推送至已設定的分支時,就會觸發新的組建。 如果您想要手動觸發新的組建,您可以在組態窗格中變更此設定。
3.5. 遞增組建編號
啟用時, CFBundleVersion
應用程式的 Info.plist 中的 會自動遞增每個組建。 變更會在建置前進行,且不會認可至您的存放庫。
3.6. 程式碼簽署
成功的組建會產生 .ipa
檔案。 若要在裝置上安裝組建,必須使用有效的布建配置檔和憑證簽署組建。 若要簽署從分支產生的組建,請在組態窗格中啟用程式代碼簽署,並將 布建配置檔上傳 (檔案) .mobileprovision
和有效的憑證 (.p12) ,以及憑證的密碼。
Xcode 專案中的設定必須與您要上傳的檔案相容。 深入瞭解 App Center 的 iOS 程式代碼簽署 和 Apple 開發人員檔。
使用 應用程式或 watchOS 擴充功能簽署應用程式 需要每個延伸模組的額外布建配置檔。
3.7. 在真實裝置上啟動您的成功建置
使用新產生的 .ipa
檔案來測試您的應用程式是否在實際裝置上啟動;啟動測試會在建置時間總計增加約10分鐘。 深入瞭解 如何設定啟動測試。
3.8. CocoaPods
App Center 會掃描選取的分支,如果找到 Podfile,它就會在每個組建的開頭自動執行 pod install
步驟。 這可確保已安裝所有相依性。
3.9. 散發至通訊群組
將每個成功的組建從分支設定為發佈至先前建立的通訊群組。 從 [散發] 區段內新增通訊群組。 一律會有一個名為「共同作業者」的預設通訊群組,其中包含可存取應用程式的所有使用者。
儲存設定之後,系統會自動啟動新的組建。
4.建置結果
組建可以處於下列其中一種狀態:
- queued - 組建已加入佇列,正在等候可用的資源
- building - 組建正在執行和執行預先定義的工作
- succeeded - 建置已順利完成
- failed - 建置失敗;下載並檢查組建記錄檔,以針對發生錯誤的問題進行疑難解答
- 已取消 - 組建已透過使用者動作取消或逾時
4.1. 組建記錄
如需完成的建置 (成功或失敗) ,請下載記錄以深入瞭解組建的運作方式。 App Center 提供具有下列檔案的封存:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1> (e.g. 2_Get Sources.txt)
|-- <build-step-2> (e.g. 3_Pod install.txt)
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
組建記錄 (位於 build/
封存) 的目錄中,有助於針對建置失敗的步驟和原因進行疑難解答和瞭解。
4.2. 應用程式 (.ipa)
檔案 .ipa
是包含 iOS 應用程式的 iPhone 應用程式封存盤案。
- 如果組建已正確簽署,您可以在
.ipa
簽署時所使用的布建配置檔中包含的實際裝置上安裝檔案。 如需有關 App Center 程式代碼簽署和散發的詳細資訊,請參閱 App Center 的 iOS 程式代碼簽署檔。 - 如果未在組建期間簽署組建,開發人員可以使用codeign) 在本機簽署
.ipa
檔案 (,或用於其他用途 (,例如,上傳至測試服務以進行實際裝置上的UI測試,或在模擬器) 中執行。 - 未簽署的組建不會產生
.ipa
檔案。 未簽署組建的成品是.xcarchive
檔案,可用來產生.ipa
具有 Xcode 封存組織者的檔案。
4.3. 來源對應和符號檔
建置 React Native iOS 應用程式時,JavaScript 來源對應和一或多個.dsym
檔案會自動隨每個組建一起產生,且可在建置完成後下載。
- 如果您先前已將App Center SDK與已啟用當機報告模組整合,當機報告指標需要此
.dsym
檔案和 JavaScript 來源對應,組建才能顯示人類可讀取的 (符號化) 當機報告。 - 如果您先前已將另一個 SDK 整合到應用程式中的當機報告用途,則對應的服務會要求
.dsym
檔案和 JavaScript 來源對應顯示人類可讀取的 (符號式) 當機報告。
請記住,在 .dsym
簽署 .ipa
的程式代碼時,檔案不會變更。 如果您稍後決定程式代碼簽署組建, .dsym
則程式代碼簽署之前產生的 仍然有效。
如果此應用程式包含當機 SDK,則會將 iOS 符號和來源對應傳送至 App Center 當機服務。 符號可讓使用者在原生和 JavaScript 堆疊上 (符號化) 當機報告。
5.建置秘訣
5.1. Yarn
Yarn 是更快速、更具決定性的 npm
取代。 yarn.lock
如果檔案出現在 您存放庫中,package.json
則 App Center 會使用 Yarn,並在建置開始時執行yarn install
。 否則,它會執行 npm install
。
5.2. 自訂組建腳本
執行 App Center 的預設建置命令之前,有數個選項可執行腳本。
在項目的
package.json
檔案中建立 postinstall 腳本。 這會自動在安裝相依性之後執行。"scripts": { ... "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh" },
使用 App Center 的 自訂組建腳本 功能撰寫殼層腳本。
#!/usr/bin/env bash # Example: Authenticate with private NPM registry echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc # Example: Create a file that's not in version control (from base64 encoded environment variable) base64 -d <<< "$MY_FILE_CONTENTS" > ios/SuperSecretFile.txt