🚀 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 备份到安全云端,防止证书丢失。

相关推荐
小风呼呼吹儿7 小时前
Flutter 框架跨平台鸿蒙开发 - 车辆保养记录器:智能管理车辆保养全流程
flutter·华为·harmonyos
不会写代码0008 小时前
Flutter 框架跨平台鸿蒙开发 - 在线小说阅读器开发教程
flutter·华为·harmonyos
2501_944521598 小时前
Flutter for OpenHarmony 微动漫App实战:推荐动漫实现
android·开发语言·前端·javascript·flutter·ecmascript
ujainu8 小时前
Flutter for HarmonyOS 前置知识:Dart语言详解(中)
flutter
2501_944521599 小时前
Flutter for OpenHarmony 微动漫App实战:图片加载实现
android·开发语言·前端·javascript·flutter·php
新镜10 小时前
【Flutter】LTR/RTL 阿拉伯语言/希伯来语言
android·flutter·ios·客户端
2501_9159090614 小时前
设置了 SSL Pinning 与双向 TLS 验证要怎么抓包
网络·网络协议·ios·小程序·uni-app·iphone·ssl
夜雨声烦丿14 小时前
Flutter 框架跨平台鸿蒙开发 - 万年历应用开发教程
flutter·华为·harmonyos
别退15 小时前
flutter_gradle_android
android·flutter
2501_9444241216 小时前
Flutter for OpenHarmony游戏集合App实战之黑白棋落子翻转
android·开发语言·windows·flutter·游戏·harmonyos