🚀 Flutter iOS App 上架 App Store 全流程(图文详解)

本文将详细讲解如何为 Flutter App 配置 iOS 签名证书与 Provisioning Profile,并顺利上传到 App Store。


📘 一、准备条件

在开始前,请确保你已具备:

  • ✅ 一台 Mac 电脑(安装最新 Xcode)
  • ✅ Flutter 环境配置完成(flutter doctor 通过)
  • ✅ 已注册 Apple Developer 账号($99/年)
  • ✅ 已创建 App ID(如 com.rain.yanhuoshijian

🧭 二、理解签名机制

名称 作用 文件 说明
Certificate 证明 App 是由你签名的 .cer 系统信任的身份凭证
Provisioning Profile 绑定 App ID + 证书 + 设备 .mobileprovision 定义谁可以安装此 App

⚠️ 发布到 App Store 必须使用:

  • iOS Distribution 证书
  • App Store 类型 的描述文件

🛠️ 三、创建 iOS Distribution 证书

1️⃣ 登录 Apple Developer

🔗 developer.apple.com/account/res...

点击右上角的 ➕ 按钮:


2️⃣ 选择证书类型

在证书类型列表中选择:

Production → App Store and Ad Hoc

点击「Continue」。


3️⃣ 生成 CSR 文件(在 Mac 上)

打开 钥匙串访问(Keychain Access)

应用程序 → 实用工具 → 钥匙串访问

点击菜单:

复制代码
钥匙串访问 → 证书助理 → 从证书颁发机构请求证书...

填写信息:

  • 用户邮箱:Apple ID 邮箱
  • 常用名称:name
  • 勾选「存储到磁盘」
  • 点击「继续」保存为:
    CertificateSigningRequest.certSigningRequest

📸 示意图(示例):


4️⃣ 上传 CSR 文件到 Apple Developer

回到 Apple 网站 → 上传上一步的 .certSigningRequest 文件

点击「Continue」

Apple 将生成一个 .cer 文件

下载该文件(例如:ios_distribution.cer


5️⃣ 导入证书到钥匙串

双击 .cer 文件,它会自动导入钥匙串中:

在「钥匙串访问」搜索:

iPhone Distribution

若显示即表示导入成功 ✅


🧩 四、创建 Provisioning Profile(描述文件)

1️⃣ 打开 Profile 页面

🔗 developer.apple.com/account/res...

点击右上角「➕」创建新的 Profile。


2️⃣ 选择 Profile 类型

选择:

App Store → App Store Connect Distribution

点击「Continue」。


3️⃣ 选择 App ID

选择你的应用 ID(例如:com.rain.yanhuoshijian

点击「Continue」。


4️⃣ 选择 Distribution 证书

选择刚刚创建的 iOS Distribution Certificate

点击「Continue」。


5️⃣ 命名与生成

输入名称:

YanhuoShijian_AppStore_Profile

点击「Generate」生成

下载 .mobileprovision 文件。


6️⃣ 导入 Xcode

双击 .mobileprovision 文件,它会自动导入 Xcode。


🧱 五、在 Xcode 中配置签名

打开 Flutter 项目的 iOS 工程:

bash 复制代码
open ios/Runner.xcworkspace

在 Xcode 中:

1️⃣ 选中左侧的 Runner 项目

2️⃣ 切换到「Signing & Capabilities」

3️⃣ 设置:

  • Team:选择你的 Apple Developer 团队
  • Bundle Identifier:与 App ID 保持一致
  • Signing Certificate :选择 Apple Distribution
  • Provisioning Profile:选择刚刚创建的 Profile 名称

📸 示意图:


🧪 六、打包验证

执行命令:

arduino 复制代码
flutter build ipa --release

如果成功,会输出:

bash 复制代码
Built IPA to: build/ios/ipa/Runner.ipa

🩺 七、常见问题排查

问题 原因 解决方式
No signing certificate 证书未导入或过期 重新下载 .cer 文件并导入
⚠️ Provisioning profile not found Bundle ID 不匹配 确认 Profile 与 Xcode 一致
❌ 打包失败 缺少描述文件 手动导入 .mobileprovision
💾 多台 Mac 共用 需导出 .p12 文件 在钥匙串中导出 Distribution 证书

☁️ 八、上传到 App Store Connect

1️⃣ 登录 appstoreconnect.apple.com

2️⃣ 进入「我的 App」

3️⃣ 新建 App

4️⃣ 使用 Xcode 或 Transporter 上传 .ipa 文件

5️⃣ 填写 App 需要审核的信息,截图等资料,提交审核即可 🎉


✅ 九、总结

环节 工具 关键点
证书生成 钥匙串访问 + Developer Portal 生成 .cer
描述文件 Developer Portal 生成 .mobileprovision
签名配置 Xcode 配对证书 + Profile
打包验证 Flutter CLI flutter build ipa
发布上传 App Store Connect 审核上线

💡 小贴士:

建议将 .p12.mobileprovision.cer 备份到安全云端,防止证书丢失。

相关推荐
一起养小猫18 小时前
Flutter for OpenHarmony 实战_魔方应用UI设计与交互优化
flutter·ui·交互·harmonyos
hudawei99618 小时前
flutter和Android动画的对比
android·flutter·动画
一只大侠的侠19 小时前
Flutter开源鸿蒙跨平台训练营 Day7Flutter+ArkTS双方案实现轮播图+搜索框+导航组件
flutter·开源·harmonyos
锐意无限19 小时前
Swift 扩展归纳--- UIView
开发语言·ios·swift
符哥200819 小时前
用Apollo + RxSwift + RxCocoa搭建一套网络请求框架
网络·ios·rxswift
一只大侠的侠19 小时前
Flutter开源鸿蒙跨平台训练营 Day9分类数据的获取与渲染实现
flutter·开源·harmonyos
一只大侠的侠20 小时前
Flutter开源鸿蒙跨平台训练营 Day 5Flutter开发鸿蒙电商应用
flutter·开源·harmonyos
ZH154558913121 小时前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter
一只大侠的侠21 小时前
Flutter开源鸿蒙跨平台训练营 Day6ArkUI框架实战
flutter·开源·harmonyos
一只大侠的侠1 天前
Flutter开源鸿蒙跨平台训练营 Day 4实现流畅的下拉刷新与上拉加载效果
flutter·开源·harmonyos