Flutter 打包 ipa出现错误问题 exportArchive

发布于:2025-03-21 ⋅ 阅读:(27) ⋅ 点赞:(0)

一、错误信息:

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