惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

博客园 - Lemo_wd

git worktree 的入门 flutter —— 理解 iOS 的依赖管理 wireguard 入门 k3s 基础 —— 将 traefik 替换为 ingress-nginx Pr 入门 为什么 TCP 是3次握手4次挥手? 给 ssh 私钥文件配置统一口令 滚动部署零碎笔记1 Clickhouse 物化视图与投影 Clickhouse 主键索引 Clickhouse 核心概念 ClickHouse 案例学习 —— 使用 ClickHouse 探索 GitHub 统计信息 linux Tun/Tap 虚拟网卡 Clickhouse 的 kafka Engine 集成 Clickhouse 表引擎 —— MergeTree 局域网中的设备间的流量转发 d3.js 构建股权架构图并绘制双向节点树 final cut pro 入门 d3.js 构建股权架构图并绘制股权百分比 flutter 的滚动控制 —— 滚动类组件的内部与整体滚动
flutter —— iOS 的构建与分发
Lemo_wd · 2026-03-06 · via 博客园 - Lemo_wd

1. 清理旧构建

flutter clean
  • 删除 build/ 目录和缓存,确保从干净状态开始构建。

2. 生成依赖配置(不编译)

flutter build ios --config-only
  • 只生成 iOS 项目所需的配置文件(Podfile、Xcode 配置等)
  • 不会生成 App 或编译产物
  • 相当于准备依赖和 Xcode 工程

3. 编译 App 到设备/模拟器

flutter build ios
  • 生成:

    • build/ios/iphoneos/Runner.app → 用于真机安装
    • build/ios/iphonesimulator/Runner.app → 用于模拟器
  • 可直接拖入设备或使用 Xcode 安装到真机


4. 打包用于分发

flutter build ipa
  • 生成:

    • build/ios/archive/Runner.xcarchive → Xcode 归档文件
    • build/ios/ipa/Runner.ipa → 可上传到 App Store 的 IPA 包

4.1 分发方式

方案 1:Apple Transporter

方案 2:手动拷贝归档

ARCHIVE_DATE=$(date +%Y-%m-%d)
DEST_DIR=~/Library/Developer/Xcode/Archives/$ARCHIVE_DATE
mkdir -p "$DEST_DIR"
LATEST_ARCHIVE=$(ls -td build/ios/archive/*.xcarchive | head -1)
cp -R "$LATEST_ARCHIVE" "$DEST_DIR/"
  • 将最新归档拷贝到 Xcode 默认 Archives 目录
  • 可通过 Xcode Organizer 查看和上传

方案 3:使用 altool(Apple ID + 密码)

xcrun altool --upload-app -f build/ios/ipa/Runner.ipa -u <appleID> -p <app-specific-password>
  • 使用 Apple ID 和 App-specific password 上传 IPA
  • 适合命令行自动化脚本

方案 4:使用 altool API Key

xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa --apiKey your_api_key --apiIssuer your_issuer_id
  • 使用 Apple API Key 上传 IPA
  • 更安全,无需 Apple ID 密码
  • 适合 CI/CD 自动化

核心要点总结

  1. flutter clean → 清理旧构建
  2. flutter build ios --config-only → 生成依赖配置
  3. flutter build ios → 编译 App(设备/模拟器)
  4. flutter build ipa → 打包 IPA