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

本文介绍了解决在iPhone5及iPhone4s模拟器上因友盟分享SDK导致的编译错误问题,该错误源于新版本SDK不支持i386架构。通过调整项目的编译设置可以有效避免这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误描述:

在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:


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

原因:

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



解决方法:

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

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


注意:

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


参考链接:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值