一、錯誤信息:
Encountered error while creating the IPA:
error: exportArchive: "Runner.app" requires a provisioning profile with the
Push Notifications feature.
Try distributing the app in Xcode:
? open /project/your_app/build/ios/archive/Runner.xcarchive
證書、描述文件都配置好的情況下,執行?Flutter build ipa --release 命令時會出現這種錯誤。 但使用 xcode update ios 不會出現這種問題。
二、ExportOptions.plist 清單文件
手動打包時需要一個 .plist 的清單文件。
Flutter 并沒有在創建項目之出就初始化此文件。經查詢 這個文件是xcode 在?Xcode?打包 iOS 項目時自動生成的文件。該文件只在 歸檔(Archive) 和 導出(Export) 過程中由 Xcode 使用。
但是 使用 Flutter 手動打包時也需要指定此文件。
三、如何獲得 ExportOptions.plist 文件
1.自行創建: 文件格式
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>destination</key><string>export</string><key>manageAppVersionAndBuildNumber</key><true/><key>method</key><string>app-store</string> <!-- 可選值: app-store, ad-hoc, enterprise, development --><key>provisioningProfiles</key><dict><key>com.your.bundle.id</key><string>Your_Provisioning_Profile_Name</string></dict><key>signingCertificate</key><string>Apple Distribution</string><key>signingStyle</key><string>manual</string> <!-- 或者 "automatic" --><key>teamID</key><string>Your_Team_ID</string>
</dict>
</plist>
2. 通過 xcode export 創建
打開 Xcode:Product -> Archive 打開 Archives 窗口
點擊 Distribute App
選擇自定義 Custom -> Next
一定要選擇 Export?
剩下的默認 一直下一步就可以, 最后會讓你選擇一個存儲位置,最終導出
導出的文件中會包含由 Xcode 生成的 ExportOptions.plist 文件
?
四、手動打包:當執行打包命令時需要指定這個文件的完整地址:
flutter build ipa --release --export-options-plist=/project/your_app/ios/ExportOptions.plist