电源与恢复
自管时需要安排供电、异常断电后的恢复与现场协助。机器重新亮起以后,还要确认 runner 和构建服务是否恢复。
租用边界
机房负责电源;团队检查自己的服务启动配置。
以下以需要运行 Xcode 的团队为基准。租用列对应 PushMac;共享列描述常见的临时 macOS 构建环境,具体计费、排队与持久化能力应逐项核对所选平台。
| 决策项 | 租用独享 Mac | 自购硬件 | 共享虚拟机 |
|---|---|---|---|
| 成本结构 | 按天 $19.2 起;按所选机型、周期与附加项结算。 | 一次性采购,加电费、网费、托管或场地成本;还需计算人员投入。 | 部分平台按分钟或任务计费;排队、并发与额外存储规则依平台而异。 |
| 交付路径 | 当天下单当天可用;付款确认后分配整机,在控制台接收连接信息。 | 采购、运输、上架、网络配置依次完成,通常需要预留数天或更长时间。 | 环境可快速创建;实际任务启动仍取决于可用配额与队列。 |
| 资源独享性 | 一台物理 Mac mini 只租给一个客户,不与其他客户共享宿主。 | 整机独享;设备、电源与网络均由自己安排。 | 虚拟环境与其他租户共享宿主;资源隔离方式和配额由平台定义。 |
| 升级与迁移 | 可按任务另选档位或节点;更换实例时需安排代码、缓存与 CI 配置迁移。 | 硬件不足时需采购或更换设备;跨区部署还要解决当地托管。 | 受平台提供的规格、并发配额及区域目录限制。 |
| 缓存与工具链 | 租期内可自行保留 DerivedData、依赖缓存与多版本 Xcode。 | 可长期保留;磁盘清理、备份和版本管理由团队负责。 | 临时实例结束后,本地文件可能清除;长期缓存通常需另接持久化方案。 |
| 基础设施责任 | 机房负责电源、网络与散热;团队管理代码、系统配置和构建任务。 | 全部自管,或分别采购托管、网络及值守服务。 | 平台负责宿主与调度;团队需适配镜像、任务时限及运行规则。 |
| 优先适用 | 持续运行、自托管 runner、固定工具链与跨区团队接力。 | 已有托管条件、需要现场接入设备,且愿意承担自管责任。 | 短时、可重建、对排队与环境重置有容忍度的独立任务。 |
独享不等于无需管理。证书、访问密钥、依赖版本、任务队列与数据备份,仍需要团队制定自己的规则。
已有办公室设备不代表运行成本为零。核算时把以下四项写进采购单,尤其标明夜间没有人在场时的处理人。
自管时需要安排供电、异常断电后的恢复与现场协助。机器重新亮起以后,还要确认 runner 和构建服务是否恢复。
租用边界
机房负责电源;团队检查自己的服务启动配置。
自管时需要处理网络稳定性、远程接入和线路故障。能连接桌面,不代表仓库拉取、依赖下载和产物上传都正常。
租用边界
机房负责网络;团队维护 SSH 密钥与应用层访问策略。
持续 archive、测试或依赖编译会形成长时间负载。自管时需要为设备通风、环境温度和现场检查留出条件。
租用边界
机房负责散热;团队观察任务负载与磁盘使用。
需要提前区分机器离线、runner 退出与脚本失败。没有值守约定,第二天看到失败邮件时,发布队列可能已经积压。
租用边界
基础设施问题走控制台工单;代码与流水线错误由团队排查。
PushMac 节点全年运行,不安排周期性停机。持续在线的整机为夜间 CI 提供运行条件;构建能否成功,还取决于项目、依赖和任务配置。
共享虚拟机不是独享物理机,但也不应一概排除。把运行限制写清楚,才能判断它适合临时任务,还是会增加日常 CI 的等待与重建成本。
记录排队、环境初始化、依赖下载、编译和上传各自耗时。同一个项目的 archive 时间相近,不代表从提交到拿到产物的总时间相近。
核对项:并发额度、任务时限、启动等待,以及资源配额是否固定。
若任务结束就销毁实例,不能把本地 Pods、SPM 或 DerivedData 当作永久存储。接入远端缓存时,还要考虑恢复耗时、容量与缓存键维护。
核对项:实例销毁规则、缓存保留期,以及 Xcode 切换后的失效策略。
虚拟环境可以提供任务隔离,但不意味着拿到整台设备。需要持久在线服务、固定工具链或更完整系统管理权限时,应核对平台是否允许。
核对项:系统权限、后台进程、工具安装限制与可选区域。
成员分处两地时,先区分远程桌面的交互需求与后台构建需求。时区决定谁在值班,网络路径决定连接体验;两者不能互相替代。
新加坡 · 东京 · 首尔 · 香港 · 美国东部
两档整机均覆盖全部节点。实际可用状态以控制台实时返回为准;远程连接体验需结合团队所在地与实际网络验证。
亚太与北美各选就近节点,使用不同 runner 标签分配任务。代码从同一仓库拉取,产物写入团队统一的位置,避免把跨区同步放进每次交互操作里。
只有一台整机时,也能按工作时段接力,但要统一构建队列。同机同时切换 Xcode、清理缓存或占用签名资源,仍可能让任务互相影响。
需要安排:节点、runner 标签、队列和产物归档规则。
两地各放一台设备,除了采购,还需要分别安排供电、网络、散热与现场协助。设备归自己所有,但跨区部署不会自动解决远程值守问题。
如果硬件只在一个办公室,另一地的远程桌面操作仍受跨区路径影响。适合已有当地场地和运维资源、能够明确交接责任的团队。
需要安排:当地托管、接入方式、恢复流程与负责人。
先确认平台提供哪些区域,再检查两地工作时段的并发额度。使用临时环境时,把工具链安装和缓存恢复写成脚本,避免依赖某台机器留下的手工状态。
适合可以拆成独立作业的流水线。需要固定桌面环境、长期运行进程或大量本地状态时,先验证能力,再投入迁移。
需要安排:区域目录、配额、镜像与缓存恢复策略。
分别记录一次冷缓存与一次热缓存构建,把连接体验、准备耗时和产物上传放在同一份记录里。按天租用适合先完成验证,再决定长期周期;不要只凭机型名称推断团队的实际收益。
需要长期在线、资源独占、保留构建缓存,又不想自行承担电源、网络与散热时,租用独享物理 Mac mini 更贴合这组需求。已有现场设备接入和成熟自管条件时,自购仍有理由;短时可重建的任务,则可以继续评估共享环境。
Push M4 S:M4 / 16GB / 256GB SSD,适合单 App 日常 CI。Push M4 L:M4 / 24GB / 512GB SSD,适合多 target 并行 archive,以及 Flutter / React Native 混合构建。实际并发应结合项目内存占用验证,不把规格直接换算成固定提速倍数。
按天起租可用于迁移检查与首次构建验证;周、月、季价格在方案页完整列出。支付支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe),统一美元结算,实际可用网关以后端返回为准。