许多第三方提供的.a文件(一般是那些SDK),嵌入到我们的xcode项目后,生成不会报错。 一部分粗心的SDK提供方,或者我们自己做的.a文件,就会有报错,常见的就是不是armv7结构,或者不是armv7s结构,如果在模拟器中运行,会报不是i386结构。 原因是:armv7是
许多第三方提供的.a文件(一般是那些SDK),嵌入到我们的xcode项目后,生成不会报错。
一部分粗心的SDK提供方,或者我们自己做的.a文件,就会有报错,常见的就是不是armv7结构,或者不是armv7s结构,如果在模拟器中运行,会报不是i386结构。
原因是:armv7是支持比iphone5旧的那些设备,armv7s是iphone5或ipad4或者以后的新设备,i386是mac的。
这些名字指的是处理器所用的指令集。
因此常常发生的是.a文件要么ipad mini可以Build成功,但iphone5不能Build成功。要么就相反,让人抓狂。
解决办法是做一个全面支持各指令集的.a文件。
前提是分别生成4个支持对应指令集的.a文件。在Build静态库时,设备分别选择不同的真机以及模拟器,分别Build出来,备份到一个文件夹,并且取不同的名字。
此时可以用命令来检查导出的.a文件所支持的指令集,lipo -info XXX.a ,要保证4个都是不同的才能进行下一步 ,注意:armv7s的显示名是cputype (12) cpusubtype (11)
然后以命令 lipo -create XXXX_V7.a XXXX_V7s.a -output XXXX_all.a 合成他们成为新的.a文件。
最后替换掉报错的.a文件即可。
iOS生成同时支持armv7,armv7s,i386 x86_64的静态库.a文件
原创
©著作权归作者所有:来自51CTO博客作者lisiben的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:sqlite3导出csv
下一篇:iOS闹钟实现
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux平台x86_64|aarch64架构如何实现轻量级RTSP服务
技术背景我们在做Linux平台x86_64架构或aarch64架构的推送模块的时候,有公司提出这样的技术需求,希望在Linux平台,实现轻量级RTSP服务,实现对摄像头或屏幕对外RTSP拉流,同步到大屏上去。技术实现废话不多说,直接上代码,先调用start_rtsp_server()指定端口号,启动RTSP服务。LogInit(); NT_SmartPublisherSDKAPI push_a
linux x86 rtsp linux arm64 rtsp linux arm64 rtsp服务器 linux arm64 rtsp 大牛直播SDK -
制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
i386 armv7 armv7s arm64 86_64的静态库.a -
armv6, armv7, armv7s的区别
ARM是微处理器行业的一家知名企业,arm处理器以体积小和高性能的优势在嵌入式设备中广泛使用,几乎所有手机都是使用
arm处理器 arm ios设备 优化 ios