Flutter:從專案產生封存檔與 ipa
準備條件:Flutter SDK 符合專案需求;iOS 專案、外掛相依項目與 Xcode 工具鏈皆可用;簽署檔案與 App 識別碼相符。
flutter doctor -v
flutter pub get
flutter build ipa
先處理 flutter doctor -v 指出的 iOS 工具鏈問題。還原相依項目失敗時,請分辨是網路、版本限制或私有套件權限問題;不要反覆執行封存命令來掩蓋前置錯誤。
預期產物:成功後請確認 build/ios/archive 中的封存檔,以及 build/ios/ipa 中的匯出檔案。實際目錄與匯出方式依使用的 Flutter 版本及建置輸出而定。
React Native:使用正確的工作區進行封存
準備條件:Node、套件管理工具與專案鎖定檔版本相符;使用 CocoaPods 的專案已安裝 iOS 相依項目,且確認使用正確的 scheme。
node --version
bundle check
cd ios
bundle exec pod install
open .
若有 Gemfile,請使用專案指定的 Bundler 環境;未使用 Bundler 的專案則依團隊流程安裝相依項目。在 Xcode 中開啟產生的 .xcworkspace,不要誤開缺少 Pods 相依項目的專案檔。
預期產物:選擇目標 scheme 與適用的裝置封存目標,透過 Product → Archive 產生 .xcarchive,再於 Organizer 依發行方式匯出或上傳。
Unity:匯出後還需完成 Xcode 流程
準備條件:Unity 編輯器版本符合專案需求,iOS 模組可用,第三方原生外掛與資源完整,並具備相應的編輯器使用授權。
xcodebuild -version
xcodebuild -list -project "$EXPORTED_XCODE_PROJECT"
在 Unity 中切換至 iOS 建置目標並匯出 Xcode 專案。使用 IL2CPP 的專案需要完成產生程式碼的原生編譯;匯出完成還不代表已取得可發佈的安裝套件。
預期產物:在 Xcode 中處理簽署、相依項目與目標設定後執行 Archive,產生封存檔,再依發行流程匯出 ipa 或上傳。若外掛產生了工作區,請開啟工作區繼續處理。