本來想在iOS9模擬器上執行公司的專案看下效果,下了個模擬器老半天終於下載好了,高高興興一執行,結果直接crash...
報錯內容
dyld_sim`dyld_fatal_error:
0x106bb6000 <+0>: int3
-> 0x106bb6001 <+1>: nop
複製程式碼
dyld: Library not loaded: /usr/lib/libauto.dylib
Referenced from: /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
Reason: no suitable image found. Did find:
/usr/lib/libauto.dylib: mach-o, but not built for iOS simulator
(lldb)
複製程式碼
Xcode10.2 + iOS9.3之前的版本都會出現這個問題
實驗
如圖,心情拔涼拔涼的 Or2,接著下了iOS10.1試著執行一下,一切OK。
後面做了個實驗,建立一個純OC和純Swift的測試專案,進行了如下測試
型別 | 模擬器上執行結果 |
---|---|
純OC | iOS9以上都執行成功 |
純Swift | iOS9執行失敗,iOS10以上執行成功 |
OC和Swift混編 | iOS9執行失敗,iOS10以上執行成功 |
結論:很顯示,只要包含了Swift程式碼就會在iOS9模擬器上執行失敗,而iOS9真機上則沒有任何問題。
解決方案
開啟終端,執行一下該命令就可以了,其中 iOS 9.1.simruntime
需要根據自己的情況修改版本號
sudo mkdir '/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 9.1.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift'
複製程式碼
命令出處:蘋果官網的 xcode_10_2_1_release_notes