您现在的位置:主页 > 技术中心 > 编程开发 > 移动开发 > Iphone

IOS生成同时支持armv7,armv7s,i386的静态库.a文件

来源:未知 责任编辑:责任编辑 发表时间:2015-10-08 14:15 点击:
许多第三方提供的.a文件(一般是那些SDK),嵌入到我们的xcode项目后,生成不会报错。 p> 

p>一部分粗心的SDK提供方,或者我们自己做的.a文件,就会有报错,常见的就是不是armv7结构,或者不是armv7s结构,如果在模拟器中运行,会报不是i386结构。

p> 

p>原因是:armv7是支持比iphone5旧的那些设备,armv7s是iphone5或ipad4或者以后的新设备,i386是mac的。

p> 

p>这些名字指的是处理器所用的指令集。

p> 

p>因此常常发生的是.a文件要么ipad mini可以Build成功,但iphone5不能Build成功。要么就相反,让人抓狂。

p> 

p>解决办法是做一个全面支持各指令集的.a文件。

p> 

p>前提是分别生成3个支持对应指令集的.a文件。在Build静态库时,设备分别选择不同的真机以及模拟器,分别Build出来,备份到一个文件夹,并且取不同的名字。

p> 

p>此时可以用命令来检查导出的.a文件所支持的指令集,lipo -info XXX.a ,要保证3个都是不同的才能进行下一步 ,注意:armv7s的显示名是cputype (12) cpusubtype (11)

p> 

p>然后以命令 lipo -create XXXX_V7.a XXXX_V7s.a -output XXXX_all.a 合成他们成为新的.a文件。

p> 

p>最后替换掉报错的.a文件即可。

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片

    推荐热点

    • Lexical or Preprocessor Issue 'xxx.h
    • ios学习笔记(二)xcode 4.3.2下实现基本交互
    • ios版本的helloworld
    • iphone(object-c) 内存管理(3) 有效的内存管理
    • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
    • UITableView一些方法
    • IOS类似iphone通讯录TableView的完整demo【附源码】
    • [iPhone中级]iPhone团购信息客户端的开发 (二)
    • iphone(object-c)内存管理(1)
    ?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
    Copyright © 2004-2024 上海卓卓网络科技有限公司