
眾所周知,在國(guó)內(nèi),用Xcode下載Simulator的速度奇慢無(wú)比,進(jìn)度條經(jīng)常是原地不動(dòng),或者動(dòng)了一段時(shí)間后告訴我time out而fail了。。。簡(jiǎn)直一大悲劇。近幾天為了解決Simulator的下載問(wèn)題,查了不少資料,但很多解決方法是關(guān)于老版本Xcode的,不適用于Xcode 7。經(jīng)過(guò)多種嘗試,我最終搞定了Xcode 7.3下的Simulators快速下載與安裝,并寫此文予以分享。
Simulator 下載
首先要獲取Simulator的官方直接下載地址,然后可以用迅雷等工具下載。
- 打開終端,輸入如下命令,啟動(dòng)Xcode:
/Applications/Xcode.app/Contents/MacOS/Xcode
這樣做是為了將Xcode的一些輸出信息直接顯示在終端上查看,待會(huì)我們會(huì)在這里看到Simulator的下載地址。
- 在Xcode的Simulator下載列表中點(diǎn)擊下載某個(gè)Simulator(我這里以9.2的Simulator為例),過(guò)幾秒后再點(diǎn)取消下載。則在與之關(guān)聯(lián)的終端上會(huì)出現(xiàn)如下信息:
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的直接下載地址??梢詫⒅截惖窖咐椎裙ぞ咧邢螺d,得到一個(gè)dmg結(jié)尾的文件,但不要急著雙擊安裝。
Simulator安裝
接下來(lái)需要將之前下載的dmg文件放到指定目錄中。在終端中執(zhí)行以下命令:
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$
可以見到,其中有一個(gè)Downloads文件夾,是用來(lái)放下載的dmg文件的。如果之前沒(méi)有通過(guò)Xcode下載任何的Simulator,則這個(gè)文件夾是不存在的,這時(shí)候只要手動(dòng)創(chuàng)建該文件夾就行了。
將下載的dmg文件放入到這個(gè)文件夾中。
重新回到Xcode中,點(diǎn)擊下載9.2的Simulator,會(huì)發(fā)現(xiàn)此時(shí)進(jìn)度條一下子達(dá)到了大半的水平。這是因?yàn)閄code已經(jīng)找到了Downloads文件夾下的dmg文件。

等個(gè)幾秒鐘,Xcode就會(huì)自動(dòng)將Simulator安裝好,如下圖所示:

任意打開一個(gè)工程,可以看見Xcode已經(jīng)自動(dòng)將新安裝的Simulator進(jìn)行了配置更新:

接下來(lái)就可以愉快地玩各種版本的模擬器了?(? ???ω??? ?)?。
可能出現(xiàn)的問(wèn)題
以下幾個(gè)問(wèn)題是我在安裝的過(guò)程中碰到的,附上我的解決方法。
OS Version 不更新
按以上步驟安裝后,有可能Xcode沒(méi)有自動(dòng)配置新安裝的Simulator,那就需要自己動(dòng)手Create a new simulator了,如下圖所示:

在下拉OS Version進(jìn)行選擇的時(shí)候,可能不會(huì)顯示新安裝的Simulator,這時(shí)候,重啟Xcode或者M(jìn)ac,應(yīng)該能解決。。。
Create時(shí)顯示Invalid runtime
Create a new simulator,最后一步點(diǎn)擊Create時(shí),可能提示Invalid runtime: com.apple.CoreSimulator.SimRuntime.iOS-X-X的信息。這時(shí)需要去相應(yīng)的文件夾看看相關(guān)的simruntime文件的信息。在終端中執(zhí)行以下命令:
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 .
可以看到,相應(yīng)Simulator的simruntime文件已經(jīng)在了,但是Xcode提示Invalid runtime,可能是simruntime文件的權(quán)限問(wèn)題導(dǎo)致的。
選擇相應(yīng)的simruntime文件,Command + i查看其信息??梢钥吹焦蚕砼c權(quán)限一欄中的信息:

解鎖后添加本人的訪問(wèn)權(quán)限為讀與寫:

接著重啟Xcode和Mac,應(yīng)該能夠解決問(wèn)題了。。。
結(jié)語(yǔ)
以上是我的一些經(jīng)驗(yàn)與心得,若有不足之處,請(qǐng)予指正。希望這篇文章對(duì)你有所幫助_。