众所周知,在国内,用Xcode下载Simulator的速度奇慢无比,进度条经常是原地不动,或者动了一段时间后告诉我time out而fail了。。。简直一大悲剧。近几天为了解决Simulator的下载问题,查了不少资料,但很多解决方法是关于老版本Xcode的,不适用于Xcode 7。经过多种尝试,我最终搞定了Xcode 7.3下的Simulators快速下载与安装,并写此文予以分享。
Simulator 下载
首先要获取Simulator的官方直接下载地址,然后可以用迅雷等工具下载。
- 打开终端,输入如下命令,启动Xcode:
/Applications/Xcode.app/Contents/MacOS/Xcode
这样做是为了将Xcode的一些输出信息直接显示在终端上查看,待会我们会在这里看到Simulator的下载地址。
- 在Xcode的Simulator下载列表中点击下载某个Simulator(我这里以9.2的Simulator为例),过几秒后再点取消下载。则在与之关联的终端上会出现如下信息:
DVTDownloadable: Download Cancelled. Downloadable: https://devimages.apple.com.edgekey.net/downloads/xcode/simulators/com.apple.pkg.iPhoneSimulatorSDK9_2-9.2.1.1451951473.dmg.
其中的url就是我们需要的Simulator的直接下载地址。可以将之拷贝到迅雷等工具中下载,得到一个dmg结尾的文件,但不要急着双击安装。
Simulator安装
接下来需要将之前下载的dmg文件放到指定目录中。在终端中执行以下命令:
localhost:~ zklgame$ cd Library/Caches/com.apple.dt.Xcode/
localhost:com.apple.dt.Xcode zklgame$ ls
Cache.db Downloads
Cache.db-shm PlaygroundResults
Cache.db-wal fsCachedData
CachedDesktopImageScaled.tif project.xcworkspace
localhost:com.apple.dt.Xcode zklgame$ ls Downloads/
8140e94628f76be6f79c074d77f1e24f11b51e03.dvtdownloadableindex
aceda22e568c65ee7449e27f4559cf7397ede62c.dvtdownloadableindex
com.apple.pkg.iPhoneSimulatorSDK8_1-8.1.1.1434581536.dmg
com.apple.pkg.iPhoneSimulatorSDK8_2-8.2.1.1434581536.dmg
localhost:com.apple.dt.Xcode zklgame$
可以见到,其中有一个Downloads文件夹,是用来放下载的dmg文件的。如果之前没有通过Xcode下载任何的Simulator,则这个文件夹是不存在的,这时候只要手动创建该文件夹就行了。
将下载的dmg文件放入到这个文件夹中。
重新回到Xcode中,点击下载9.2的Simulator,会发现此时进度条一下子达到了大半的水平。这是因为Xcode已经找到了Downloads文件夹下的dmg文件。
等个几秒钟,Xcode就会自动将Simulator安装好,如下图所示:
任意打开一个工程,可以看见Xcode已经自动将新安装的Simulator进行了配置更新:
接下来就可以愉快地玩各种版本的模拟器了⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄。
可能出现的问题
以下几个问题是我在安装的过程中碰到的,附上我的解决方法。
OS Version 不更新
按以上步骤安装后,有可能Xcode没有自动配置新安装的Simulator,那就需要自己动手Create a new simulator了,如下图所示:
在下拉OS Version进行选择的时候,可能不会显示新安装的Simulator,这时候,重启Xcode或者Mac,应该能解决。。。
Create时显示Invalid runtime
Create a new simulator,最后一步点击Create时,可能提示Invalid runtime: com.apple.CoreSimulator.SimRuntime.iOS-X-X的信息。这时需要去相应的文件夹看看相关的simruntime文件的信息。在终端中执行以下命令:
localhost:Profiles zklgame$ cd /Library/Developer/CoreSimulator/Profiles/Runtimes/
localhost:Runtimes zklgame$ ls
iOS 8.1.simruntime iOS 8.2.simruntime iOS 9.2.simruntime
localhost:Runtimes zklgame$ open .
可以看到,相应Simulator的simruntime文件已经在了,但是Xcode提示Invalid runtime,可能是simruntime文件的权限问题导致的。
选择相应的simruntime文件,Command + i查看其信息。可以看到共享与权限一栏中的信息:
解锁后添加本人的访问权限为读与写:
接着重启Xcode和Mac,应该能够解决问题了。。。
结语
以上是我的一些经验与心得,若有不足之处,请予指正。希望这篇文章对你有所帮助_。