今天pod install 了一個第三方庫,然后command+B就出現(xià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)
報錯的.m文件中導(dǎo)入了另個一第三方靜態(tài)庫的頭文件,但是兩個庫根本沒有關(guān)聯(lián)不存在重復(fù)導(dǎo)入的問題。
那么就只好去搜索"linker command failed with exit code 1" 網(wǎng)上一大堆解決辦法,挨個兒試
1、說文件重復(fù)添加的,以防萬一那我們?nèi)ロ椖坷锼阉饕幌拢_實只有一個 pass
如果出現(xiàn)重復(fù)添導(dǎo)致的該報錯就去找Build settings->Linking->Other Linker Flags
把里面的屬性改為-all_load ?或者 -ObjC
2、說導(dǎo)入的靜態(tài)庫.a文件路徑出錯
到Build settings->Search Path->Library Search Paths 下面重新修改路徑
command+shift+k? 然后command+B 依然報錯
3、找到報錯的.m文件勾選 Target Membeship 下面的項目名
前往.m文件?Target Membeship 下面的已經(jīng)是勾選狀態(tài) (勾選之后第二點中提到的路徑,Xcode會自動添加)
4、刪掉項目中的.a文件重新添加,依然無效
emmmm。。。??赡芩阉鞯年P(guān)鍵詞不對
重新搜索“ignoring file xxxxxx.a, missing required architecture x86_64 in file xxxxx.a (2 slices)”
結(jié)果中有提到.a文件對各種架構(gòu)的支持情況。
打開終端,進入.a的文件目錄,運行 lipo -info xxxxx.a
出現(xiàn)的信息只有armv7、arm64??
意思是只支持真機,再看我Xcode選擇的是iPhone8模擬器,果斷連上手機 Command+B這次沒問題了。
第一次使用lipo命令,感興趣的可以去網(wǎng)上搜一下,生成.a和.framework的都會用到這個命令
我也去學(xué)習(xí)一下。。。