1 在 macOS 电脑上更新 Flutter iOS 应用到 App Store

你在 macOS 电脑上,有一个已经上架过的 Flutter iOS 应用,现在要发布新版本。


一、先记住最核心流程

如果你只想最快完成更新,核心流程是:

bash 复制代码
flutter clean
flutter pub get
flutter build ios --release
open ios/Runner.xcworkspace

然后在 Xcode 里:

text 复制代码
1. 修改 Version 和 Build
2. 配置 Signing & Capabilities
3. Product -> Archive
4. Organizer -> Distribute App -> App Store Connect -> Upload

最后到 App Store Connect:

text 复制代码
创建新版本
选择刚上传的 Build
填写更新说明
提交审核

二、更新前你需要确认的信息

因为你以前上架过,但没记笔记,所以先找回这些信息。

1. 找到你的 App

打开:

https://appstoreconnect.apple.com/

登录后进入:

text 复制代码
我的 App / My Apps

找到你之前上架过的 iOS 应用。

进去后你要重点看:

text 复制代码
Bundle ID
当前版本号
当前 Build 号
App Store Connect 所属团队

2. 找到 Bundle ID

在 App Store Connect 中:

text 复制代码
你的 App -> App 信息 / App Information

里面有:

text 复制代码
Bundle ID

例如:

text 复制代码
com.example.myapp

这个非常重要,后面 Xcode 里必须一致。


3. 查看当前线上版本号

在 App Store Connect 的 App 页面,找到当前版本,例如:

text 复制代码
1.3.0

你要发布的新版本可以是:

text 复制代码
1.3.1

或者:

text 复制代码
1.4.0

4. 查看上一次构建号

在 App Store Connect 的当前版本页面里,会有一个构建版本,例如:

text 复制代码
1.3.0 (25)

这里的:

text 复制代码
25

就是 Build 号。

你这次上传的新构建必须比它大,例如:

text 复制代码
26

或者:

text 复制代码
27

三、版本号规则

iOS 更新有两个号:

名称 字段 示例 是否必须增加
Version CFBundleShortVersionString 1.3.1 建议增加
Build CFBundleVersion 26 必须增加

举例:

上一次是:

text 复制代码
1.3.0 (25)

这次可以是:

text 复制代码
1.3.1 (26)

也可以是:

text 复制代码
1.4.0 (26)

但 Build 号不能小于或等于之前的。


四、修改 Flutter 项目版本号

方法一:修改 pubspec.yaml

打开项目根目录的:

text 复制代码
pubspec.yaml

找到:

yaml 复制代码
version: 1.3.0+25

改成:

yaml 复制代码
version: 1.3.1+26

解释:

yaml 复制代码
version: 版本号+构建号

例如:

yaml 复制代码
version: 1.3.1+26

表示:

text 复制代码
Version = 1.3.1
Build = 26

方法二:在 Xcode 里修改

打开 iOS 工程:

bash 复制代码
open ios/Runner.xcworkspace

注意:一定要打开 .xcworkspace,不要打开 .xcodeproj

在 Xcode 中:

text 复制代码
左侧 Runner -> Runner target -> General

找到:

text 复制代码
Identity

修改:

text 复制代码
Version: 1.3.1
Build: 26

五、清理并更新 Flutter 项目

在项目根目录执行:

bash 复制代码
flutter clean
flutter pub get

如果你使用了 CocoaPods,也可以顺便执行:

bash 复制代码
cd ios
pod install --repo-update
cd ..

六、本地检查项目能否构建

执行:

bash 复制代码
flutter build ios --release

如果成功,会看到类似:

text 复制代码
Building com.example.myapp...
Built build/ios/iphoneos/Runner.app

如果失败,先解决报错,再继续。


七、打开 Xcode 配置签名

执行:

bash 复制代码
open ios/Runner.xcworkspace

在 Xcode 中:

text 复制代码
Runner -> Runner target -> Signing & Capabilities

1. 选择 Team

找到:

text 复制代码
Team

选择你的 Apple Developer 账号或公司团队。

例如:

text 复制代码
Your Name (Personal Team)

或者:

text 复制代码
Your Company LLC

如果没有,点击:

text 复制代码
Add an Account...

登录你的 Apple ID。


2. 勾选自动签名

建议勾选:

text 复制代码
Automatically manage signing

这样 Xcode 会自动处理证书和描述文件。

如果你是第一次在这台电脑上更新,推荐先用自动签名。


3. 确认 Bundle ID

General 页面找到:

text 复制代码
Bundle Identifier

确保它和 App Store Connect 里的应用一致。

例如:

text 复制代码
com.example.myapp

如果不一致,上传后可能找不到构建,或者无法提交审核。


4. 选择发布签名证书

Signing & Capabilities 里,通常会有两块:

text 复制代码
Debug
Release

重点检查:

text 复制代码
Release

如果使用自动签名,一般会自动选择:

text 复制代码
Apple Distribution

或者:

text 复制代码
iPhone Distribution

如果提示没有证书,可以点击:

text 复制代码
Try Again

或者去:

text 复制代码
Xcode -> Settings -> Accounts -> Manage Certificates

添加:

text 复制代码
Apple Distribution

八、如果你换了电脑,或者证书丢了

这是很多人忘记流程时最容易卡住的地方。

情况一:你还记得开发者账号,并且有管理员权限

最简单:

text 复制代码
使用 Xcode Automatically manage signing

Xcode 通常可以自动创建或选择发布证书。


情况二:旧电脑上的证书私钥找不到了

可以重新创建发布证书。

在 Xcode 中:

text 复制代码
Xcode -> Settings -> Accounts

选择你的 Apple ID:

text 复制代码
Manage Certificates

点击左下角 +

text 复制代码
Apple Distribution

然后重新配置签名。

注意:

如果你之前手动管理签名,可能需要重新生成 Provisioning Profile。


情况三:你只有 App Store Connect 权限,没有开发证书权限

你需要找到有团队管理员权限的人,让他给你权限,或者帮你生成证书。

至少需要能访问:

text 复制代码
Apple Developer -> Certificates, IDs & Profiles

以及:

text 复制代码
App Store Connect

九、检查 iOS 权限和隐私说明

如果你的应用用了相机、相册、定位、麦克风等,需要在:

text 复制代码
ios/Runner/Info.plist

里有对应的说明。

例如:

xml 复制代码
<key>NSCameraUsageDescription</key>
<string>需要使用相机拍摄照片</string>
xml 复制代码
<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问相册选择照片</string>
xml 复制代码
<key>NSLocationWhenInUseUsageDescription</key>
<string>需要获取位置信息</string>
xml 复制代码
<key>NSMicrophoneUsageDescription</key>
<string>需要使用麦克风录制语音</string>

如果以前能上架,通常这些已经配置过了。

但如果你升级了某些插件,可能需要补充。


十、检查第三方库和隐私清单

现在 iOS 审核对隐私要求比较严格。

如果你用了这些类型的 SDK,要特别注意:

  • 广告 SDK
  • 统计 SDK
  • 崩溃收集
  • 推送
  • 登录
  • 分享
  • 支付
  • 地图
  • 网络库
  • WebView 相关库

建议更新前执行:

bash 复制代码
flutter pub upgrade
cd ios
pod update
cd ..

如果你用了需要隐私清单的 SDK,确保它们已经更新到支持隐私清单的版本。

否则审核可能会提示类似:

text 复制代码
Privacy manifest
NSPrivacyAccessedAPITypes
Required reason API

十一、Archive 打包

在 Xcode 顶部选择设备:

text 复制代码
Any iOS Device (arm64)

或者:

text 复制代码
Any iOS Device

不要选择模拟器。

然后执行:

text 复制代码
Product -> Archive

等待打包完成。

成功后会打开:

text 复制代码
Organizer

如果没有打开,可以手动打开:

text 复制代码
Window -> Organizer

十二、上传到 App Store Connect

在 Organizer 中:

text 复制代码
选择刚刚生成的 Archive

然后点击:

text 复制代码
Distribute App

选择:

text 复制代码
App Store Connect

然后选择:

text 复制代码
Upload

一路继续。

一般选择:

text 复制代码
Automatically manage signing

最后点击:

text 复制代码
Upload

上传成功后会看到:

text 复制代码
App Uploaded

或者:

text 复制代码
Upload Successful

十三、如果 Xcode 上传失败,可以用 Transporter

如果 Xcode Organizer 上传一直失败,可以用 Transporter。

Transporter 下载地址:

https://apps.apple.com/cn/app/transporter/id1450874784

用法:

  1. 打开 Transporter
  2. 登录你的 Apple ID
  3. 选择你的应用
  4. 选择 .ipa 文件
  5. 上传

但是 Flutter iOS 项目一般直接用 Xcode Organizer 更方便。


十四、等待 App Store Connect 处理构建

上传完成后,不会立刻可选。

App Store Connect 会显示:

text 复制代码
Processing

通常需要等待:

text 复制代码
5 分钟到 30 分钟

有时会更久。

如果处理失败,Apple 一般会发邮件到你的开发者账号邮箱。


十五、在 App Store Connect 创建新版本

打开:

https://appstoreconnect.apple.com/

进入:

text 复制代码
我的 App -> 你的 App

左侧找到:

text 复制代码
App Store

然后选择:

text 复制代码
iOS App

如果当前版本是 1.3.0,你要发 1.3.1,可以:

text 复制代码
点击版本号旁边 +

或者:

text 复制代码
创建新版本

填写新版本号:

text 复制代码
1.3.1

十六、选择新上传的 Build

在版本页面找到:

text 复制代码
构建版本 / Build

点击:

text 复制代码
+ 选择构建版本

选择你刚上传的构建,例如:

text 复制代码
1.3.1 (26)

如果还没出现,等它处理完成。


十七、填写更新说明

找到:

text 复制代码
版本说明 / What's New in This Version

例如:

text 复制代码
1. 修复部分页面偶发闪退问题
2. 优化启动速度
3. 更新隐私说明
4. 修复已知问题

这个内容会展示给用户。


十八、检查应用截图和元数据

通常更新小版本时,以下内容可以沿用旧的:

text 复制代码
应用截图
应用描述
关键词
技术支持网址
隐私政策网址
年龄分级

但如果有以下变化,需要更新:

  • 界面大改
  • 应用名称变化
  • 功能变化
  • 隐私政策变化
  • 截图过期
  • 支持设备变化

十九、填写出口合规信息

上传时或提交审核时,可能会问加密问题。

如果你的应用只使用标准 HTTPS,没有特殊自研加密,一般可以选择符合豁免。

也可以在:

text 复制代码
ios/Runner/Info.plist

里加:

xml 复制代码
<key>ITSAppUsesNonExemptEncryption</key>
<false/>

这样每次上传通常不会再问。

如果你不确定,就要根据实际加密用途回答。


二十、提交审核

所有必填项完成后,点击右上角:

text 复制代码
提交至 App Review / Submit for Review

然后选择发布方式:

text 复制代码
审核通过后自动发布

或者:

text 复制代码
审核通过后手动发布

建议如果你不确定,选:

text 复制代码
手动发布

这样审核通过后,你可以自己决定什么时候上线。


二十一、审核状态说明

提交后常见状态:

状态 含义
Waiting for Review 等待审核
In Review 审核中
Pending Developer Release 审核通过,等你发布
Ready for Sale 已上架
Metadata Rejected 元数据有问题
Binary Rejected 安装包有问题
Rejected 被拒

如果是 Metadata Rejected,通常改文案、截图、隐私信息即可。

如果是 Binary Rejected,需要修代码或配置后重新上传 Build。


二十二、以后每次更新的标准流程

你可以把下面这段保存成笔记。

更新 iOS 应用标准流程

bash 复制代码
flutter clean
flutter pub get
flutter build ios --release
open ios/Runner.xcworkspace

在 Xcode 中:

text 复制代码
1. 修改 Version
2. 修改 Build,必须递增
3. 检查 Team
4. 检查 Bundle ID
5. Product -> Archive
6. Organizer -> Distribute App -> App Store Connect -> Upload

在 App Store Connect 中:

text 复制代码
1. 创建新版本
2. 选择新上传的 Build
3. 填写更新说明
4. 提交审核

二十三、最小记忆版

以后你只需要记住这几句话:

text 复制代码
版本号加 1
Build 号加 1
flutter build ios --release
Xcode Archive
上传 App Store Connect
App Store Connect 提交审核

二十四、常见问题排查


1. 上传后 App Store Connect 看不到 Build

常见原因:

  • 还在处理中
  • Build 号重复
  • Bundle ID 不一致
  • 签名错误
  • 权限说明缺失
  • 第三方库隐私清单问题

解决方法:

  1. 等 10-30 分钟
  2. 检查邮箱,Apple 通常会发错误邮件
  3. 确认 Build 号比旧版本大
  4. 确认 Bundle ID 一致
  5. 重新 Archive 上传

2. 提示 Build 号已经存在

比如旧版本是:

text 复制代码
1.3.0 (25)

你这次不能再用:

text 复制代码
1.3.1 (25)

必须改成:

text 复制代码
1.3.1 (26)

或者:

text 复制代码
1.3.1 (27)

3. Xcode 提示 No Account for Team

去:

text 复制代码
Xcode -> Settings -> Accounts

登录你的 Apple ID。

然后回到:

text 复制代码
Signing & Capabilities

重新选择 Team。


4. Xcode 提示 No profiles for bundle id

原因通常是:

  • Bundle ID 没注册
  • 描述文件不存在
  • 签名配置错误

建议先勾选:

text 复制代码
Automatically manage signing

然后选择正确 Team。

如果还不行,去:

https://developer.apple.com/account/resources/identifiers/list

检查 Bundle ID 是否存在。


5. 提示证书过期

去:

text 复制代码
Xcode -> Settings -> Accounts -> Manage Certificates

添加:

text 复制代码
Apple Distribution

如果不行,去:

https://developer.apple.com/account/resources/certificates/list

检查证书状态。

如果旧证书过期或丢失,可以重新创建。


6. 提示缺少权限说明

例如:

text 复制代码
NSCameraUsageDescription
NSPhotoLibraryUsageDescription
NSLocationWhenInUseUsageDescription

需要在:

text 复制代码
ios/Runner/Info.plist

中补充。


7. 提示隐私清单或 Required Reason API

需要检查第三方库和系统 API 使用。

常见涉及:

text 复制代码
UserDefaults
FileManager
磁盘空间
系统启动时间
设备标识

需要按照 Apple 要求填写隐私清单,或者更新第三方库。


8. 打包时 CocoaPods 报错

可以尝试:

bash 复制代码
cd ios
rm -rf Pods
rm -rf Podfile.lock
pod install --repo-update
cd ..

然后:

bash 复制代码
flutter clean
flutter pub get
flutter build ios --release

9. Flutter 版本太旧导致无法上传

如果 Xcode 版本比较新,而 Flutter 太旧,可能会有兼容问题。

可以先升级 Flutter:

bash 复制代码
flutter upgrade
flutter clean
flutter pub get

然后重新构建。

但如果你现在只想紧急上架,不建议大改依赖。先保持能打包为主。


二十五、如果你完全不知道之前是怎么签名的

可以用这个策略:

优先使用自动签名

在 Xcode 中:

text 复制代码
Runner -> Runner target -> Signing & Capabilities

勾选:

text 复制代码
Automatically manage signing

选择:

text 复制代码
Team

确保:

text 复制代码
Bundle Identifier

和 App Store Connect 一致。

然后:

text 复制代码
Product -> Clean Build Folder
Product -> Archive

上传时 Organizer 里也选择:

text 复制代码
Automatically manage signing

这是最适合"忘了之前怎么配置"的方式。


二十六、如果你换了电脑,如何恢复?

你需要准备:

text 复制代码
1. Apple Developer 账号
2. App Store Connect 权限
3. Bundle ID
4. Flutter 项目代码
5. 新版本号和新 Build 号

如果旧电脑证书私钥丢失,不一定必须找回旧证书。

只要你有开发者账号权限,可以重新创建发布证书和描述文件。

步骤:

text 复制代码
1. Xcode 登录 Apple ID
2. 添加 Apple Distribution 证书
3. 勾选 Automatically manage signing
4. 选择正确 Team 和 Bundle ID
5. Archive 上传

二十七、建议你现在按这个顺序操作

你可以直接照下面做:

bash 复制代码
flutter clean
flutter pub get
flutter build ios --release
open ios/Runner.xcworkspace

然后在 Xcode 里:

text 复制代码
1. Runner -> Runner target -> General
2. Version 改成新版本,例如 1.3.1
3. Build 改成新的,例如 26
4. Signing & Capabilities 选择你的 Team
5. 勾选 Automatically manage signing
6. Bundle ID 保持和线上一致
7. Product -> Archive

Archive 完成后:

text 复制代码
Organizer -> Distribute App -> App Store Connect -> Upload

最后到 App Store Connect:

text 复制代码
创建新版本 -> 选择新 Build -> 填写更新说明 -> 提交审核

二十八、给你一个可以保存的笔记模板

你可以复制保存:

text 复制代码
Flutter iOS App Store 更新流程

1. 修改版本号
   pubspec.yaml:
   version: 1.3.1+26

2. 清理项目
   flutter clean
   flutter pub get

3. 构建 iOS
   flutter build ios --release

4. 打开 Xcode
   open ios/Runner.xcworkspace

5. Xcode 配置
   Runner -> Runner target -> General
   Version: 1.3.1
   Build: 26

   Runner -> Runner target -> Signing & Capabilities
   Team: 你的开发者账号
   Automatically manage signing: 勾选
   Bundle Identifier: 和 App Store Connect 一致

6. 打包
   Product -> Archive

7. 上传
   Organizer -> Distribute App -> App Store Connect -> Upload

8. App Store Connect
   创建新版本
   选择新 Build
   填写版本说明
   提交审核

相关推荐
恋猫de小郭1 小时前
Flutter 状态管理基准测评,一个很有趣的观点
android·前端·flutter
可乐鸡翅yeah_1 小时前
App WebView 加载 M3U8 流媒体踩坑,安卓 iOS 混合开发播放异常定位
android·ios·harmonyos·m3u8·m3u8在线播放
●VON2 小时前
Flutter 鸿蒙插件适配实战:给 screen_security 补上截图与录屏防护
flutter·华为·harmonyos
ACP广源盛1392462567312 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
ACP广源盛1392462567313 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
代码的小搬运工15 小时前
KVO学习
学习·ios·cocoa
方白羽15 小时前
为什么 Android 非要用 Intent 传值?
android·ios·harmonyos
dora17 小时前
iOS开发新手的第一行代码
ios
mashang1234567891 天前
mac安装SnailGitLite并配置Beyond Compare
前端·macos