ios build時(shí)镊尺,Undefined symbols for architecture xxx問題的總結(jié)

Undefined symbols基本上等于JAVA的ClassNotFoundException郊酒,最常見的原因有這幾種:

1.build的時(shí)候沒有加framework

build的時(shí)候钧惧,compile階段沒有問題丧裁,但是link就報(bào)錯(cuò)Undefined symbols for architecture xxx(這里xxx可能是armv7s,armv7或者arm64缸浦,取決于配置夕冲,稍后會(huì)說)。

解決方法是在Build Phases的Link Binary With Libraries里加入xxxx.framework裂逐,再編譯就ok了.

2.工程依賴的庫,編譯時(shí)Architectures不匹配

在Build Settings里泣栈,第一項(xiàng)Architectures卜高,是配置項(xiàng)目的編譯體系結(jié)構(gòu),主要有下面3個(gè)配置項(xiàng):

Architectures:將要?jiǎng)?chuàng)建的Bundle支持的ARCH

Valid Architectures:有效的ARCH南片,這個(gè)配置項(xiàng)沒什么用掺涛,一般配置成armv7,armv7s疼进,arm64就行了

Build Active Architecture Only:是否只打當(dāng)前連接設(shè)備對(duì)應(yīng)的arch

在真機(jī)上薪缆,常見的ARCH有3個(gè):armv7,armv7s伞广,arm64

armv7:對(duì)應(yīng)iPhone4和iPhone4S

armv7s:對(duì)應(yīng)iPhone5和iPhone5C拣帽,還有早期的iPad

arm64/armv8:對(duì)應(yīng)iPhone5S和iPhone6系列,以及比較新的iPad嚼锄,如iPad mini2减拭,iPad Air

而ARCH是向下兼容的,比如用armv7打出來的包区丑,可以運(yùn)行在arm64架構(gòu)的設(shè)備上拧粪;反之不行修陡。所以如果應(yīng)用要支持iPhone4系列,Architectures就一定要包含armv7才行

而Build Active Architecture Only是指是否僅當(dāng)前連接的設(shè)備的架構(gòu)打包可霎。比如Architectures配置了armv7和arm64魄鸦,Build Active Architecture Only設(shè)置為YES,那么連接iPhone4的時(shí)候癣朗,就會(huì)以armv7打包拾因;連接iPhone5S的時(shí)候,就會(huì)以arm64打包斯棒。如果Build Active Architecture Only設(shè)置為NO盾致,那么就會(huì)2種架構(gòu)都打,在運(yùn)行期根據(jù)實(shí)際的設(shè)備架構(gòu)來執(zhí)行荣暮。所以最后打出來的Bundle體積會(huì)比較大

說了這么多庭惜,這個(gè)為什么造成Undefined symbols呢?因?yàn)檫€有另外一條規(guī)則穗酥,就是build link階段护赊,用arm64生成的.o文件,無法link用armv7s或者armv7生成的.o文件砾跃,所以就會(huì)link error

常見的情況是骏啰,項(xiàng)目引用了一個(gè)第三方庫(比如從pod來的庫),而這個(gè)第三方庫打包的時(shí)候只支持armv7s和armv7抽高,而項(xiàng)目有使用arm64打包判耕,這個(gè)時(shí)候就會(huì)由于無法link,而報(bào)錯(cuò)Undefined symbols

解決的辦法是翘骂,或者重新打包第三方庫壁熄,加入arm64;或者自己的項(xiàng)目去掉arm64

有時(shí)候在模擬器上無法構(gòu)建碳竟,在真機(jī)上可以

這種情況我只遇到過一次草丧。我們的app可以連接一個(gè)外廠商的藍(lán)牙打印機(jī),對(duì)方提供了一個(gè)lib莹桅。當(dāng)我們的項(xiàng)目引入了這個(gè)lib之后昌执,就無法在模擬器上build通過了,但是在真機(jī)上是沒問題的---------來自someone

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诈泼,一起剝皮案震驚了整個(gè)濱河市懂拾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厂汗,老刑警劉巖委粉,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異娶桦,居然都是意外死亡贾节,警方通過查閱死者的電腦和手機(jī)汁汗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栗涂,“玉大人知牌,你說我怎么就攤上這事〗锍蹋” “怎么了角寸?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長忿墅。 經(jīng)常有香客問我扁藕,道長,這世上最難降的妖魔是什么疚脐? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任亿柑,我火速辦了婚禮,結(jié)果婚禮上棍弄,老公的妹妹穿的比我還像新娘望薄。我一直安慰自己,他們只是感情好呼畸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布痕支。 她就那樣靜靜地躺著,像睡著了一般蛮原。 火紅的嫁衣襯著肌膚如雪卧须。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天儒陨,我揣著相機(jī)與錄音故慈,去河邊找鬼。 笑死框全,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的干签。 我是一名探鬼主播津辩,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼容劳!你這毒婦竟也來了喘沿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤竭贩,失蹤者是張志新(化名)和其女友劉穎蚜印,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體留量,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窄赋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年哟冬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忆绰。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浩峡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出错敢,到底是詐尸還是另有隱情翰灾,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布稚茅,位于F島的核電站纸淮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亚享。R本人自食惡果不足惜咽块,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虹蒋。 院中可真熱鬧糜芳,春花似錦、人聲如沸魄衅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晃虫。三九已至皆撩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哲银,已是汗流浹背扛吞。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荆责,地道東北人滥比。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像做院,于是被迫代替她去往敵國和親盲泛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容