在iOS 11系統(tǒng)模擬器可運行iOS15模擬器不行

自己的APP項目论熙,M1芯片電腦隔盛,在iOS 11系統(tǒng)的模擬器可以運行,iOS 11的真機破托、iOS15的真機可以運行,但是 iOS15模擬器運行報錯:
Undefined symbols for architecture arm64: 或者
Framework not found XXX

問題排查的經(jīng)過:
1. 新建一個項目诵闭,不裝pod的情況下炼团,iOS 11iOS 15模擬器都是可以運行的澎嚣。
2. 新建一個項目疏尿,裝pod,不引入任何pod庫的情況下易桃,iOS 11模擬器運行成功后褥琐,切換到iOS 15模擬器運行失敗,Xcode 執(zhí)行clean之后晤郑,iOS 15模擬器能運行成功敌呈,但切換到iOS 11設備的模擬器后運行失敗。報錯信息:

iOS 11模擬器不能運行報的錯:x86_64缺失
The linked framework 'Pods_xxx.framework' is missing one or more architectures required by this target: x86_64.
iOS 15不能運行報的錯: arm64缺失
The linked framework 'Pods_xxx.framework' is missing one or more architectures required by this target: arm64.

這個問題的解決辦法是:修改Pods 的設置Build Active Architecture Only中Debug為NO造寝,執(zhí)行clean之后都能運行了(項目本身的設置也要這樣設置)磕洪。但是我們一般不這樣做,我們應該在選擇運行到低版本模擬器時手動clean一下再運行诫龙,因為這樣設置后活躍的Active的架構才去編譯析显,代碼編譯的速度會更快。
pod庫架構兼容.jpg
3. 確認了“2”中的修改方法后签赃,我的項目仍然不能跑起來谷异,于是在設置中看到Excluded Architecture里面寫了arm64,即除了arm64以外的架構锦聊,所以我把這個設置去掉之后就變得可以運行了歹嘹。
排除了arm64.jpg

使用上述操作的話,我們再次執(zhí)行pod install之后孔庭,設置又改回去了尺上,所以我們最終的解決辦法是在Podfile中加上

inhibit_all_warnings!
install! 'cocoapods',
  disable_input_output_paths: true, #pod庫每次修改代碼,主工程無需再次pod install就能看到代碼
  generate_multiple_pod_projects: true # 讓每個pod依賴庫成為一個單獨的項目引入,這樣大大提升了編譯速度

post_install do |installer|
  installer.generated_projects.each do |project|
     project.targets.each do |target|
       target.build_configurations.each do |config|
         config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = ""
         config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
         config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'NO'
         if config.name == 'Debug'
           config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
           else
           config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
           end
       end
     end
   end
end
4. 上述操作下如果存在有的pod導入運行不了怎抛,報錯

building for iOS Simulator, but linking in object file built for iOS, for architecture arm64
==》 翻譯:為iOS模擬器構建仰税,但在為iOS構建的對象文件中鏈接,用于架構arm64抽诉。

那么這就是我們上一步中去掉了排除了arm64導致的陨簇,所以我們遇到這個情況需要項目工程和pod工程都排除arm64。做法就是項目工程中的設置Excluded Architecture中模擬器SDK為arm64迹淌,如下圖河绽,上述的Podfile中的下面這句需要改為:

config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"

然后再次pod install后clean一下,可以運行了唉窃。
如果項目中還有推送擴展等其它的工程的話耙饰,也是要跟主工程一樣設置架構。

推送擴展的設置.png

我們根據(jù)報錯情況來選擇3或者4的方法讓自己項目能跑起來纹份!
如果能運行的話苟跪,也可以試著去掉podfile中下面代碼, 如果能運行的話,就不用下面的了蔓涧。

         if config.name == 'Debug'
           config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
           else
           config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
           end
5. 對于庫的編寫者的podspec文件寫法

podspec文件應該添加下面的行

s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
6. 真機設置的架構情況
  • i386是針對intel通用微處理器32位處理器
  • x86_64是針對x86架構的64位處理器
  • 模擬器32位處理器測試需要i386架構
  • 模擬器64位處理器測試需要x86_64架構
  • 真機32位處理器需要armv7,或者armv7s架構
  • 真機64位處理器需要arm64架構

參考閱讀
Xcode12 Build For ios Simulator arm64
Podfile語法參考
開啟 Cocoapods 新選項件已,加快項目索引速度

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市元暴,隨后出現(xiàn)的幾起案子篷扩,更是在濱河造成了極大的恐慌,老刑警劉巖茉盏,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鉴未,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸠姨,警方通過查閱死者的電腦和手機铜秆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讶迁,“玉大人连茧,你說我怎么就攤上這事√泶桑” “怎么了梅屉?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鳞贷。 經(jīng)常有香客問我坯汤,道長,這世上最難降的妖魔是什么搀愧? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任惰聂,我火速辦了婚禮疆偿,結果婚禮上,老公的妹妹穿的比我還像新娘搓幌。我一直安慰自己杆故,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布溉愁。 她就那樣靜靜地躺著处铛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拐揭。 梳的紋絲不亂的頭發(fā)上撤蟆,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音堂污,去河邊找鬼家肯。 笑死,一個胖子當著我的面吹牛盟猖,可吹牛的內容都是我干的讨衣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼式镐,長吁一口氣:“原來是場噩夢啊……” “哼反镇!你這毒婦竟也來了?” 一聲冷哼從身側響起碟案,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤愿险,失蹤者是張志新(化名)和其女友劉穎颇蜡,沒想到半個月后价说,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡风秤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年鳖目,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缤弦。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡领迈,死狀恐怖,靈堂內的尸體忽然破棺而出碍沐,到底是詐尸還是另有隱情狸捅,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布累提,位于F島的核電站尘喝,受9級特大地震影響,放射性物質發(fā)生泄漏斋陪。R本人自食惡果不足惜朽褪,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一置吓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缔赠,春花似錦衍锚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至踢匣,卻和暖如春置森,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背符糊。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工凫海, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人男娄。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓行贪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親模闲。 傳聞我的和親對象是個殘疾皇子建瘫,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容