錯(cuò)誤描述:
在iPhone5及iPhone4s模擬器上編譯運(yùn)行程序會(huì)報(bào)錯(cuò)提示以下信息:
ld: warning: ignoring file /Users/**/Desktop/*****/ThirdLib/UMSocial_Sdk_5.2.1/TencentOpenAPI/TencentOpenAPI.framework/TencentOpenAPI, missing required architecture i386 in file /Users/**/Desktop/*****/ThirdLib/UMSocial_Sdk_5.2.1/TencentOpenAPI/TencentOpenAPI.framework/TencentOpenAPI (3 slices)
Undefined symbols for architecture i386:
而在iPhone5s及以上版本的模擬器和iPhone真機(jī)上不會(huì)出現(xiàn)這種錯(cuò)誤纸俭。
原因:
使用了友盟分享SDK,新版本的友盟SDK(5.2.1)CPU框架不支持i386架構(gòu)罕模,而iPhone5及以下設(shè)備的模擬器是i386架構(gòu)蝠猬,所以會(huì)missing required architecture i386 in file克懊。
解決方法:
將project->Build Setting->Architectures->Build Active Architecture Only->Debug設(shè)置為YES墓懂。
Build Active Architecture Only:是否只編譯當(dāng)前設(shè)備適用的指令集(如果這個(gè)參數(shù)設(shè)為YES焰宣,使用iPhone 6調(diào)試,那么最終生成的一個(gè)支持ARM64指令集的Binary捕仔。一般在DEBUG模式下設(shè)為YES匕积,RELEASE設(shè)為NO)
注意:
將Debug設(shè)置為YES,Release設(shè)置為NO。若兩個(gè)都設(shè)置為YES上架打包用iPhone5s以上的手機(jī)編譯發(fā)布包時(shí)不會(huì)支持iPhone5s以下的設(shè)備榜跌;用iPhone5以下的手機(jī)打包時(shí)的ipa包不包含64位闪唆。