Xcode12適配 無法編譯模擬器

共計(jì)遇到三個(gè)問題行楞,挨個(gè)剖析一下拗秘。

問題現(xiàn)象1:

  1. building for iOS Simulator-arm64 but attempting to link with file built for iOS Simulator-x86_64
  2. building for iOS Simulator, but linking in object file built for iOS, file '/Users///framework/' for architecture arm64

問題分析:

字面意思來看,是說link了不支持模擬器的FrameWork戚揭,通常需要檢查三方庫,看看三方庫是不是不支持模擬器,比如支付的早期就不支持模擬器精居。

Xcode12在編譯模擬器的時(shí)候優(yōu)先使用arm64架構(gòu)編譯,而過去打包模擬器是沒有arm64的靴姿,arm64架構(gòu)只適用于真機(jī)沃但。因此報(bào)錯(cuò)linking了一個(gè)真機(jī)的FrameWork佛吓。

解決方案大致是(錯(cuò)誤的方案):
I've seen quite a bit of weird behavior with frameworks, I think due to changes to the simulators to support Apple silicon. My temporary workaround is, in my app/extension targets, to add "arm64" to the Excluded Architectures build setting when building for the simulator (as your preview appears to be trying to do), and setting "Build Active Architecture Only" to No for all schemes. Might be worth a try.

Check if in your project for compiled target ->build settings -> user defined section (at the very bottom) you have defined VALID_ARCHS=arm64, if yes, delete it.

大致是說刪除VALID_ARCHS=arm64,然后Build Active Architecture Only 設(shè)置為NO


image.png

實(shí)際測試,確實(shí)可行了维雇。但是帶來了新的問題,這樣沒法編譯真機(jī)了……

解決方案(推薦2)

  1. build settings->excluded architectures 中加入arm64架構(gòu)吱型,代表不編譯arm64架構(gòu)逸贾。但是這種做法會導(dǎo)致無法編譯真機(jī),因?yàn)檎鏅C(jī)是arm64架構(gòu)津滞。所以需要勾選Any iOS Simulator SDK铝侵,解決。
  2. build settings->build active architecture only 設(shè)置為YES触徐,代表僅編譯當(dāng)前項(xiàng)目中包含的架構(gòu)咪鲜。這個(gè)設(shè)置適用于模擬器和真機(jī)。
  3. 如果使用了XCConfig配置文件撞鹉,那么設(shè)置EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64嗜诀,效果同1


問題現(xiàn)象2:

fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: ***.a have the same architectures (arm64) and can't be in the same fat output file

問題分析:

打包的時(shí)候設(shè)置Build Active Architecture Only為no則代表打適用于所有機(jī)型的包,Xcode11 打包的模擬器的.a默認(rèn)支持i386孔祸、x86_64,Xcode12 打包的模擬器.a默認(rèn)支持i386发皿、x86_64崔慧、arm64。比Xcode11多了arm64穴墅,而arm64通常用于真機(jī)惶室,因此在合并模擬器的.a和真機(jī)的.a的時(shí)候起了沖突。

解決方案:

打包的時(shí)候強(qiáng)制指定${CONFIG} ARCHS="i386 x86_64", Xcode 配置build settings->+user-defined->VALID_ARCHS = i386 x86_64玄货,或者直接設(shè)置Architectures = i386 x86_64


問題現(xiàn)象3:

報(bào)錯(cuò)1:DemoApp.xcodeproj The linked framework **framework' is missing one or more architectures required by this target: armv7.
報(bào)錯(cuò)2:ld: in **, building for iOS, but linking in object file (**) built for iOS Simulator, file '*' for architecture arm64

問題分析:

既然Xcode12模擬器默認(rèn)支持了arm64皇钞,那么我們直接打出一個(gè)模擬器的FrameWork,真機(jī)是否可以直接使用松捉?

解決方案:

答案是不可以夹界。真機(jī)無法使用模擬器的arm64。報(bào)錯(cuò)1是直接使用模擬器的包編譯會提示找不到armv7隘世,改了build active architecture only后報(bào)錯(cuò)2可柿。
Xcode12 提到了Universal APP(通用APP)鸠踪,MacOS11 的Apple芯片支持手機(jī)應(yīng)用在電腦上運(yùn)行。推測可能是蘋果為新電腦做的適配复斥,假設(shè)新電腦支持arm64营密,那就應(yīng)該支持編譯arm64的模擬器和真機(jī)。開發(fā)者大會有提及目锭,但是細(xì)節(jié)不明评汰。
解決方案:暫時(shí)只能老老實(shí)實(shí)回退到不包含arm64的模擬器包。

參考:https://developer.apple.com/forums/thread/657913

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痢虹,一起剝皮案震驚了整個(gè)濱河市被去,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌世分,老刑警劉巖编振,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異臭埋,居然都是意外死亡踪央,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門瓢阴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畅蹂,“玉大人,你說我怎么就攤上這事荣恐∫盒保” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵叠穆,是天一觀的道長少漆。 經(jīng)常有香客問我硼被,道長,這世上最難降的妖魔是什么嚷硫? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任仔掸,我火速辦了婚禮,結(jié)果婚禮上起暮,老公的妹妹穿的比我還像新娘。我一直安慰自己双泪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布葫盼。 她就那樣靜靜地躺著村斟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪孩灯。 梳的紋絲不亂的頭發(fā)上逾滥,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機(jī)與錄音讥巡,去河邊找鬼舔哪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捉蚤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播布持,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼题暖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逞敷,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤推捐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痊乾,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡椭更,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年虑瀑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舌狗。...
    茶點(diǎn)故事閱讀 39,711評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痛侍,死狀恐怖朝氓,靈堂內(nèi)的尸體忽然破棺而出赵哲,到底是詐尸還是另有隱情,我是刑警寧澤誓竿,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布谈截,位于F島的核電站筷屡,受9級特大地震影響簸喂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喻鳄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一除呵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颜曾,春花似錦、人聲如沸泛豪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臀叙。三九已至,卻和暖如春渊涝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背稳其。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工既鞠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留煤傍,地道東北人蚯姆。 一個(gè)月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓洒敏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親郭毕。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評論 2 353