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

推荐订阅源

Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
博客园_首页
T
The Blog of Author Tim Ferriss
H
Hackread – Cybersecurity News, Data Breaches, AI and More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
I
InfoQ
量子位
J
Java Code Geeks
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
Webroot Blog
Webroot Blog
Martin Fowler
Martin Fowler
D
Docker
F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
V
Vulnerabilities – Threatpost
罗磊的独立博客
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
Cyberwarzone
Cyberwarzone
P
Privacy & Cybersecurity Law Blog
Last Week in AI
Last Week in AI
爱范儿
爱范儿
The Hacker News
The Hacker News
S
SegmentFault 最新的问题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
V
V2EX
Simon Willison's Weblog
Simon Willison's Weblog
AI
AI
Y
Y Combinator Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
GbyAI
GbyAI
V
Visual Studio Blog
H
Heimdal Security Blog
S
Secure Thoughts
B
Blog RSS Feed
雷峰网
雷峰网
T
Tenable Blog
C
Check Point Blog
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
About on SuperTechFans
Recent Commits to openclaw:main
Recent Commits to openclaw:main

博客园 - Lemo_wd

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