M 系列 Mac,運(yùn)行模擬器時(shí)卡死在 installing

Q:

公司內(nèi)部私有 pod 庫(kù)的示例工程,在 M3 芯片的 Mac 上運(yùn)行模擬器時(shí),出現(xiàn)了卡死的情況;
第一次運(yùn)行是沒(méi)問(wèn)題的,但是 commend + r 第 2 次運(yùn)行時(shí),Xcode 會(huì)卡在 installing 那里,模擬器跑不起來(lái);
在 Intel 芯片的機(jī)器上正常,只在 M3 的 Mac 出現(xiàn)了這個(gè)情況。

圖1.png

之所以出現(xiàn)這個(gè)情況,是因?yàn)槲覀?pod 的 podsepc 文件中,指定了模擬器環(huán)境跳過(guò) arm64 的編譯

Pod::Spec.new do |s|
    s.name             = ‘xxx’
    s.version          = ‘1.0.9’
    s.summary          = ‘xxx summary’
    s.description      = ‘xxx desc’
    s.homepage         = 'http://xxx’
    s.license          = { :type => 'MIT', :file => 'LICENSE’ }
    s.author           = { ‘xxx' => ‘xxx’ }
    s.source           = { :git => ‘git@xxx', :tag => s.version.to_s }
    s.ios.deployment_target = ‘9.0’

    s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64’ }
    s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64’ }

    s.frameworks = 'UIKit', 'WebKit', ‘Foundation’
end

而 M 系列的 Mac 本身就是 arm 架構(gòu),給他跳過(guò)就可能會(huì)出現(xiàn)一些問(wèn)題。于是我嘗試使用 Rosetta 模式運(yùn)行(怎么使用 Rosetta 模式,請(qǐng)參考文末鏈接)。
遺憾的是第 1 次,第 2 次運(yùn)行時(shí)正常,第 3 次運(yùn)行就又卡死在 installing 了,估計(jì)是 M 系列對(duì)指令集的兼容有點(diǎn)問(wèn)題(詳細(xì)探究請(qǐng)參考文末鏈接)。

A:

于是暫時(shí)放棄 EXCLUDED_ARCHS 編譯項(xiàng),把 podspec 文件,以及 podfile 文件中的這個(gè)配置注釋掉,并且把項(xiàng)目配置中的 ‘a(chǎn)rm64 除外’ 配置,也刪掉;

 #   s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64’ }
 #   s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64’ }
圖2.png

至此,在 M 系 Mac 的模擬器上,就可以正常 commend + r 運(yùn)行了;

??說(shuō)明:

這并不算完美的方案,如果以后再集成其他不方便改 podspec 的三方庫(kù),庫(kù)里又湊巧帶這個(gè) ‘模擬器下跳過(guò) arm64 編譯’ 的配置;又或者 .a 中不包含一些架構(gòu),到時(shí)候就又會(huì)出現(xiàn)這個(gè)情況;
所以還是建議盡量用真機(jī)調(diào)試;

感謝這篇文章的幫助:http://www.itdecent.cn/p/311ddae66ac2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容