如何建设一个用于编译 iOS App 的 MacOS 云服务器集
时间:2026-10-19 18:55 来源:未知 人气:
作者:京东零售 叶萌
现代软件开发一般会借助 CI/CD 来提升代码质量、加快发版速度、自动化重复的事情,iOS App 只能在 mac 机器上编译,CI/CD 工具因此需要有一个 macOS 云服务器集群来执行 iOS App 的编译。
今天就来谈谈如何建设 macOS 云服务器集群
购买 mac mini / Mac Studio 机器
最简单的方式就是购买一批 mac 机器,买它个 1000 台,买回来后放入机房,把其中一台机器作为管理机,申请办公网访问这台机器的网络权限,每次要维护这批机器里的软件时,先从办公网进入管理机,然后从管理机在远程连接到其他机器。
虚拟化 macOS 集群
借助 macOS 官方的 Virtualization.Framework,可以分钟级创建 macOS 虚拟机,这种方式创建的虚拟机性能、稳定性、安全性都很高,可以持续采用更新、更快、更高级的 mac 硬件,最终实现更快的 App 编译速度。
在企业内部申请 macOS 机器,需要经历申请预算、领导审批、采购、运输、部署至机房等繁琐步骤,现在可通过购买高配置的 mac 机器,然后再将其按需配置成多台虚拟机,减少了硬件维护成本,提高了扩容效率。这方面代表性产品有
- https://github.com/cirruslabs/tart
- https://www.macstadium.com/anka
移动端 CI/CD 平台 bitrise 采用的是这种方式,只不过他们做了很多自研工作,打造了 Gen2 编译基础设施,宣称能让客户更快、更频繁的发布 App
云端管理 macOS 服务器
自行购买并维护 mac 机器还是不太方便,成本很高,如果能云端管理、按需付费就更好了。亚马逊的 AWS 解决了这个问题,他家的 Amazon EC2 Mac Instances 能让我们按需申请 macOS 服务器,如果能接受云端服务的话,其实这种方式最省事。与这种服务类似的产品有
- https://flow.swiss/mac-bare-metal
- https://www.scaleway.com/en/hello-m1/
在 linux 里运行 macOS 虚拟机
sickcodes/Docker-OSX 是最近流行的一个项目。
- 借助 KVM 技术,实现了在 linux 里运行 macOS 虚拟机
- 借助 docker,简化了 macOS 虚拟机的部署
这个项目具有很多优势,例如
- 不依赖专门的 Apple 硬件,能够运行 KVM 的 x86_64 机器就行
- 能够通过 docker 容器来部署 macOS 虚拟机。未来借助 k8s,能够实现大规模 macOS 服务器的管理,轻易实现扩缩容