iOS記一次坑爹的報(bào)錯(cuò)

今天pod install 了一個(gè)第三方庫,然后command+B就出現(xiàn)了下面的報(bào)錯(cuò)信息,莫名其妙,之前真機(jī)運(yùn)行一點(diǎn)問題沒有。。。

ld: warning: ignoring file xxxxxx.a, missing required architecture x86_64 in file xxxxx.a (2 slices)

Undefined symbols for architecture x86_64:

? "_OBJC_CLASS_$_xxxxx", referenced from:

? ? ? objc-class-ref in xxxxx.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

報(bào)錯(cuò)的.m文件中導(dǎo)入了另個(gè)一第三方靜態(tài)庫的頭文件,但是兩個(gè)庫根本沒有關(guān)聯(lián)不存在重復(fù)導(dǎo)入的問題。

那么就只好去搜索"linker command failed with exit code 1" 網(wǎng)上一大堆解決辦法,挨個(gè)兒試

1、說文件重復(fù)添加的,以防萬一那我們?nèi)ロ?xiàng)目里搜索一下,確實(shí)只有一個(gè) pass

如果出現(xiàn)重復(fù)添導(dǎo)致的該報(bào)錯(cuò)就去找Build settings->Linking->Other Linker Flags

把里面的屬性改為-all_load ?或者 -ObjC

2、說導(dǎo)入的靜態(tài)庫.a文件路徑出錯(cuò)

到Build settings->Search Path->Library Search Paths 下面重新修改路徑

command+shift+k? 然后command+B 依然報(bào)錯(cuò)

3、找到報(bào)錯(cuò)的.m文件勾選 Target Membeship 下面的項(xiàng)目名

前往.m文件?Target Membeship 下面的已經(jīng)是勾選狀態(tài) (勾選之后第二點(diǎn)中提到的路徑,Xcode會(huì)自動(dòng)添加)

4、刪掉項(xiàng)目中的.a文件重新添加,依然無效

emmmm。。。??赡芩阉鞯年P(guān)鍵詞不對

重新搜索“ignoring file xxxxxx.a, missing required architecture x86_64 in file xxxxx.a (2 slices)”

結(jié)果中有提到.a文件對各種架構(gòu)的支持情況。

打開終端,進(jìn)入.a的文件目錄,運(yùn)行 lipo -info xxxxx.a

出現(xiàn)的信息只有armv7、arm64??

意思是只支持真機(jī),再看我Xcode選擇的是iPhone8模擬器,果斷連上手機(jī) Command+B這次沒問題了。

第一次使用lipo命令,感興趣的可以去網(wǎng)上搜一下,生成.a和.framework的都會(huì)用到這個(gè)命令

我也去學(xué)習(xí)一下。。。

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

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

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