出 IPA
自动化打包
xcodebuild · fastlane · gym
让 runner 接收提交,依次执行 archive、签名、导出与上传 TestFlight。把失败日志和构建产物留在 CI 中,不再依靠远程桌面逐次点按钮。
先用单个任务验证签名与导出,再设置并发上限。独享资源不等于无限并发;同时启动多少个 archive,应按工程的内存峰值决定。
bundle exec fastlane ios release
iOS 构建农场 · 独享物理 Mac mini
不是虚拟机。每台 Apple Silicon Mac mini 物理节点只租给一个订单,CPU、统一内存与 SSD 全部独享。按天起租,常规订单下单后约 15 分钟交付。
登录后,沿用原来的打包命令
$ xcodebuild archive -workspace App.xcworkspace \
-scheme App -configuration Release \
-archivePath build/App.xcarchive
成功输出示例
** ARCHIVE SUCCEEDED **$ bundle exec fastlane gym --scheme App \
--export_method app-store \
--output_directory build
成功输出示例
Successfully exported and signed the ipa$ flutter pub get
$ (cd ios && pod install)
$ flutter build ipa --release \
--export-method app-store
成功输出示例
Built IPA to build/ios/ipa在工程根目录执行;替换 workspace 与 scheme,先准备好项目依赖、签名证书及描述文件。输出仅示意成功结果,不代表执行记录。
先用一份代表性工程验证,再决定租期。交付信息与实际可用状态以控制台实时返回为准。
同一工程,比较同一构建步骤
示例条件:SwiftUI 工程 · Xcode 16.4
单位:秒,越短越好
固定提交、Xcode 版本与 Release 配置;分别记录冷缓存和热缓存结果,不把依赖下载时间混入 archive 对比。
按文档准备构建环境 →新加坡 / 东京 / 首尔 / 香港 / 美国西部
下单后交付连接信息
30 天约 43 分钟停机额度
Host M4 Lite · 美元结算
保留熟悉的工具链
能打包什么
拿到 macOS 管理员权限后,继续使用自己的构建脚本。先确认工具链版本、签名材料和缓存目录,再把原来的任务接到云端 Mac;无需为了更换机器重新设计流水线。
xcodebuild · fastlane · gym
让 runner 接收提交,依次执行 archive、签名、导出与上传 TestFlight。把失败日志和构建产物留在 CI 中,不再依靠远程桌面逐次点按钮。
先用单个任务验证签名与导出,再设置并发上限。独享资源不等于无限并发;同时启动多少个 archive,应按工程的内存峰值决定。
bundle exec fastlane ios release
devicectl · Xcode Devices
物理节点可用于 USB 外设与 Xcode 设备调试流程。设备接入涉及物理连接,不会把你身边的手机自动映射到远端机器;先通过工单确认接入安排。
接入后检查设备是否被识别,再核对系统版本、签名配置和测试目标。模拟器回归与真机验证是两条流程,不能互相替代。
xcrun devicectl list devices
xcodes · simctl · 版本回归
为正式构建与适配回归保留不同 Xcode 版本。用 xcodes 查看已安装版本,用构建任务的环境变量固定开发者目录,避免其他任务切换版本影响当前流水线。
先核对 Xcode 与 macOS 的兼容要求。模拟器运行时、DerivedData 和归档都占 SSD,安装新版本前先留出下载与解压空间。
xcodes installed
xcodebuild -version
MLX · 统一内存
在 Host M4 Pro 的 64GB 统一内存上评估量化模型。记录模型大小、上下文长度与内存峰值,再比较吞吐;不要只看模型文件能否放进磁盘。
按周安排一轮实验,保留脚本、环境依赖和结果后结束租用。与编译同机运行时,明确分配资源,避免推理任务挤占构建内存。
python -m pip show mlx mlx-lm
多少钱
每天、每周、每月、每季均为对应租期的预付价格,不是互相折算的日均价。先按统一内存和 SSD 选档,再按任务持续时间选租期。
| 档位 / 规格 | 每天 | 每周 | 每月 | 每季 | 选择机型 |
|---|---|---|---|---|---|
| Host M4 LiteM4 · 16GB · 256GB SSD | $20.5/天 | $55.4/周 | $102.5/月 | $278.8/季 | 选择 Lite → |
| Host M4 PlusM4 · 24GB · 512GB SSD | $39/天 | $105.4/周 | $195.1/月 | $530.7/季 | 选择 Plus → |
| Host M4 ProM4 Pro · 64GB · 2TB SSD | $61/天 | $164.6/周 | $304.8/月 | $829.1/季 | 选择 Pro → |
一律以美元(USD)结算。仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe);实际可用网关以后端接口返回为准。
查看附加 SSD 与 Thunderbolt 5 并联价格 →单 App 与轻量流水线可从 Lite 验证;多 target、模拟器并行或 Flutter 项目先评估 Plus;大型工程并发 archive、Unity 导出及较大模型实验优先评估 Pro。附加 SSD 增加存储,不增加统一内存;升级前先分清瓶颈是磁盘、内存还是编译并发。
可用率承诺
节点全年 365 天正常运行。下面是服务承诺和申请规则,不是历史监控记录,也不是把每一次构建失败都计作节点不可用。
以服务可用性判断,不以应用编译是否成功判断。
在哪里
三档机型均覆盖这 5 个节点。先考虑操作时段与代码仓库的位置,再用自己的网络验证连接体验;同一时区不等于相同延迟。实际可用状态以控制台实时返回为准。
适合东南亚团队及亚太协作时段。将仓库拉取、依赖下载和产物上传都纳入验证,不只比较远程桌面手感。
适合日本团队的日间开发与适配回归。按本地工作时段安排人工检查,把重复 archive 留给自动化任务。
适合韩国应用与游戏客户端团队。Unity 导出后继续在物理 Mac 上编译、签名,并留存包体与构建日志。
适合与亚太办公室同步协作的团队。首次迁移时核对仓库访问、签名材料和 CI 回传路径,减少环境差异。
适合北美团队日间操作,或与亚太团队接力构建。注意夏令时变化,CI 定时任务明确写出采用的时区。
从团队任务出发
以下为角色化使用诉求示例,帮助对照自己的工作流,不作为客户评价或效果承诺。
“我想把夜间打包从办公室那台旧 Mac 搬走,早上先看构建产物,而不是先找人重启。”
“我希望 Flutter 的 iOS 段也能进入流水线,依赖、签名和产物路径都可追踪。”
“我想按周租一台做模型实验,保存结果后结束租用,把实验成本单独记清。”
还有疑问
确认机器形态、交付方式、CI 接入和计费规则。具体订单的问题通过控制台工单处理,售前选型也可以发邮件至 support@osxhost.com。
是独享物理机。每台 Mac mini 只交付给一个订单,不向不同用户切分 CPU、统一内存与 SSD。macOS 图形界面和命令行完整可用;你仍需管理自己的项目依赖、签名材料和机内数据备份。
常规订单下单后约 15 分钟交付,具体进度和连接信息查看控制台。拿到机器后先修改初始密码、配置 SSH 密钥,再检查磁盘与 Xcode 版本。SSH 适合自动化,macOS 屏幕共享适合首次图形化配置;步骤见上手文档。
可以作为自托管 runner 或 agent 使用。用你的 CI 系统注册这台机器,配置工作目录、任务标签与并发数。先跑一份最小构建确认依赖和签名,再迁移正式流水线;不要把私钥或证书密码直接写进仓库。
按天、周、月、季预付,以美元结算。仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe),实际可用网关以后端接口返回为准。续费以控制台订单规则为准;结束租用前导出工程、证书与构建产物,不把实例当作唯一备份。退租后执行安全擦除。
构建笔记
阅读工具链、缓存和环境准备的实践笔记。迁移前先列出可复现的命令,迁移后再用同一份工程验证结果。
用固定 Swift 测试向量明确 UUID 的文本格式、版本策略与字节顺序,把标识符解析从隐含约定变成可执行检查。
CI/CD 实践用合成色块与 JPEG 回读测试,区分真正的色域转换和单纯修改配置标记,为 iOS 图片导出建立可重复的验收基线。
Security用 Swift 脚本验证独立 Cookie 存储,再检查请求注入、退出清理与迟到响应,避免账户切换时沿用旧会话。
新稿筹备中,先看博客列表。
$20.5/天 起 · 常规订单约 15 分钟交付 · 5 个节点可选
带上你的仓库、构建脚本和签名材料,从一次可复现的 archive 开始。