如何在Mac上安装Xcode的xip压缩包和挂载IOS SDK Simulator Runtime

3,165 阅读2分钟

前言

自从MacOS 14发布,Xcode升级到15版本之后,从苹果的开发者网站 developer.apple.com/download/al… 下载的Xcode.xip便不再包含IOS的SDK了,为此折腾了好一段时间,经历过两个版本的升级之后,这套纯命令行的操作方法也算是可用,在此记录下来。

一些问题

Q1. 为何要使用纯命令行的方式去部署?直接在系统的商店下载Xcode后选择SDK再下载不可以吗?

A. 当然可以!如果你需要更新的机器只有一台,或者只有几台的话,完全可以使用这种方式。但是当机器数量达到一定程度时,脚本才是更优解。

Q2. 上面的开发者网站下载资源有限制吗?

A. 需要你至少拥有一个开发者账号,不管是个人的还是公司账号。

Q3. 我该怎么选择下载的 Xcode 版本和 IOS SDK 的版本?

A. 可以参考官方文档:developer.apple.com/cn/support/…

图片.png

操作步骤

1. 下载需要的 Xcode.xip 和 iOS_Simulator_Runtime.dmg

下载地址:developer.apple.com/download/al…

Xcode示例包体:Xcode_15.2.xip

IOS示例包体:iOS_17.2_Simulator_Runtime.dmg

2. 存放在Mac机器上

Xcode示例包体:~/Downloads/MacStudio/Xcode_15.2.xip

IOS示例包体:~/Downloads/MacStudio/iOS_17.2_Simulator_Runtime.dmg

3. 安装Xcode

# 解压包体
xip --expand ~/Downloads/MacStudio/Xcode_15.2.xip
# 复制到实用程序
mv Xcode.app /Applications
# 指定默认使用的Xcode
xcode-select -s /Applications/Xcode.app
# 从命令行接受证书
xcodebuild -license accept
# 从命令行检查许可协议的状态,并安装启动 Xcode 所需的任何软件包。通过运行该命令可以确保 Xcode 能够正常启动和使用。
xcodebuild -runFirstLaunch

4. 挂载 IOS SDK

xcrun simctl runtime add "~/Downloads/MacStudio/iOS_17.2_Simulator_Runtime.dmg"

其他步骤

如果不小心挂载了错误的版本,想要取消挂载直接使用 diskutil umont 可能会失败,这里拿取消挂载 iOS_18_Release_Candidate_Simulator_Runtime.dmg 为例

# 先查看当前IOS包体的挂载情况
mount

# 再查看挂载路径是否有进程占用 (下面的路径均可以通过 mount 看到)
lsof /Library/Developer/CoreSimulator/Volumes/iOS_22A5346a
lsof /Library/Developer/CoreSimulator/Cryptex/Images/bundle/SimRuntimeBundle-A21829B7-A12D-47E2-BBE1-DB380AC946A0

# 有的话就先kill掉进程
kill 85109

# 然后再取消挂载
diskutil umount /Library/Developer/CoreSimulator/Volumes/iOS_22A5346a
diskutil umount /Library/Developer/CoreSimulator/Cryptex/Images/bundle/SimRuntimeBundle-A21829B7-A12D-47E2-BBE1-DB380AC946A0

使用

xcrun simctl list runtimes

命令查看所有可用的模拟器运行时,然后使用

xcrun simctl runtime delete <runtime-id>

命令删除你不再需要的运行时。

总结

除了下载资源到本地的步骤之外,其余的步骤理论上都可以通过脚本指令完成,你可以将资源存放在Windows共享盘或者任何存储介质上,随后运行脚本批量在多个机器安装Xcode和IOS SDK。