原文地址: Xcode14 下载 watchOS Simulator 失败
Xcode14 为了缩减体积, 将部分组件并未内置在安装包中. 当工程添加了 Watch App 支持, 开始编译时 Xcode 会自动下载 Apple Watch 的模拟器, 否则无法继续编译. 但是使用 Xcode内置的下载又经常下载失败, 报错是网络超时.
此时可以移除 Watch 相关的 Target 来临时解决问题, 但是最终还是需要下载模拟器, 再次反复经历失败-下载-失败.
Xcode 内置的下载很容易失败, 身边统计学基本都需要下载 4/5 次才能成功(下载速度快, 但是下载到一半就莫名其妙超时了), 而且下载不支持断点续传, 每次重新下载, 导致效率十分低下.
我们可以直接在苹果开发者网站下载对应的模拟器, 然后执行如下
sudo xcode-select -s /Applications/Xcode.app/
xcodebuild -runFirstLaunch
// 路径自行修改下
xcrun simctl runtime add "~/Downloads/watchOS_9.1_Simulator_Runtime.dmg"
simctl
会校验 dmg 文件, 并将模拟器放到合适的位置, 执行完成之后 Xcode 设置页会成这样
解决办法参考苹果链接 Install and manage Simulator runtimes from the command line
苹果开发网站找不到自己想要下载的模拟器怎么办?
苹果开发者网站经常不一定有我们想要下载的包, 难道还是回去死磕 Xcode 自带的下载吗? 我们可以使用命令行获取下载地址, 然后自行下载
- 先关掉 Xcode (cmd + Q)
- 命令行启动 XCode (使用 Mac 自带的 Terminal 或者 iterm2 都可以), 命令如下
/Applications/Xcode.app/Contents/MacOS/Xcode
- 在 Xcode 中下载该模拟器(Settings->Platform 页面下自行选择)
- 在下载页面取消下载(取消下载会触发失败日志)
- 在命令行失败日志中获取下载地址, 类似这样
2023-12-25 18:23:35.903 Xcode[52215:1841435] DVTDownloadable: Download Cancelled. Downloadable: https://devimages-cdn.apple.com/downloads/xcode/simulators/com.apple.pkg.iPhoneSimulatorSDK15_0-15.0.1.1633542405.dmg.
- 使用浏览器下载这个
https://devimages-cdn.apple.com/downloads/xcode/simulators/com.apple.pkg.iPhoneSimulatorSDK15_0-15.0.1.1633542405.dmg.
链接就好(下载别的模拟器链接不一样) - 文件移到
~/Library/Caches/com.apple.dt.Xcode/Downloads/
目录中, 像下面这样, 注意自己改下文件名mv com.apple.pkg.iPhoneSimulatorSDK15_0-15.0.1.1633542405.dmg ~/Library/Caches/com.apple.dt.Xcode/Downloads/
- 回到 Xcode, 重新下载这个模拟器, 就会跳过下载直接安装了