missing required architecture i386 in file错误原因、解决方法

错误描述:

在iPhone5及iPhone4s模拟器上编译运行程序会报错提示以下信息:

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:

missing required architecture i386 in file错误原因、解决方法_第1张图片

而在iPhone5s及以上版本的模拟器和iPhone真机上不会出现这种错误。


原因:

使用了友盟分享SDK,新版本的友盟SDK(5.2.1)CPU框架不支持i386架构,而iPhone5及以下设备的模拟器是i386架构,所以会missing required architecture i386 in file。


missing required architecture i386 in file错误原因、解决方法_第2张图片


解决方法:

将project->Build Setting->Architectures->Build Active Architecture Only->Debug设置为YES。

Build Active Architecture Only:是否只编译当前设备适用的指令集(如果这个参数设为YES,使用iPhone 6调试,那么最终生成的一个支持ARM64指令集的Binary。一般在DEBUG模式下设为YES,RELEASE设为NO)

missing required architecture i386 in file错误原因、解决方法_第3张图片


注意:

将Debug设置为YES,Release设置为NO。若两个都设置为YES上架打包用iPhone5s以上的手机编译发布包时不会支持iPhone5s以下的设备;用iPhone5以下的手机打包时的ipa包不包含64位。


参考链接:

iOS指令集、Xcode “Build Setting”中的Architectures参数问题的参考

你可能感兴趣的:(missing required architecture i386 in file错误原因、解决方法)