You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级macOS14+Xcode15后Flutter iOS应用无法打包分发求助

解决方案:Xcode 15 + Flutter 3.13.8 iOS打包及归档问题

一、优先升级Flutter版本

Flutter 3.13.8发布于Xcode 15正式版之前,对Xcode 15的打包逻辑适配不足,这是核心问题之一:

  • 执行命令升级到最新稳定版:
    flutter upgrade
    
    推荐升级到3.16.x及以上版本,该版本已针对Xcode 15的导出流程、plist配置做了完整适配。

二、手动配置导出配置文件(解决IPA打包报错)

Xcode 15调整了exportOptionsPlist的字段枚举,Flutter旧版本自动生成的配置不符合要求,需手动指定:

  1. 在iOS项目根目录(ios/)创建ExportOptions.plist,内容如下(替换你的Team ID为实际开发者团队ID):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>ad-hoc</string>
    <key>teamID</key>
    <string>你的Team ID</string>
    <key>uploadBitcode</key>
    <false/>
    <key>uploadSymbols</key>
    <true/>
    <key>signingStyle</key>
    <string>manual</string>
</dict>
</plist>
  1. 使用该配置文件执行打包命令:
flutter build ipa --export-options-plist=ios/ExportOptions.plist --no-tree-shake-icons

三、修复DisplayName、Version & Build缺失问题

  1. 打开Xcode,选中Runner项目,进入General标签页,确认Display Name、Version、Build字段已正确填写;
  2. 检查ios/Runner/Info.plist,确保存在以下键值对并配置正确:
    • CFBundleDisplayName:对应应用显示名称
    • CFBundleShortVersionString:对应Version号
    • CFBundleVersion:对应Build号
  3. 确认Flutter项目根目录的pubspec.yaml中version字段格式正确(例如1.0.0+1,前者为Version,后者为Build号),Flutter会自动同步该值到Xcode配置。

四、解决Xcode归档无Ad-Hoc选项问题

  1. 归档完成后,选择Distribute App → Developer ID,后续步骤中勾选符号上传选项,并选择对应的Ad-Hoc证书和配置文件;
  2. 检查Apple开发者账号的Provisioning Profile:确认已创建Ad-Hoc类型的配置文件,且包含目标设备UDID,已下载到本地;
  3. 清理Xcode旧配置:打开Xcode → Settings → Accounts → 选中你的开发者账号 → Manage Profiles,删除过期或无效的配置文件,重新下载最新的Ad-Hoc配置文件。

是否需要降级回Ventura?

不推荐优先降级。上述方案覆盖了Xcode 15与Flutter适配的核心问题,升级Flutter版本是长期适配的合理选择。仅当所有方案尝试无效且项目紧急时,再考虑降级系统作为临时补救措施。

内容的提问来源于stack exchange,提问作者thefrankie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:00:22