今天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í)一下。。。