iphone各代cpu架构及xcode对ios sdk版本及cpu架构的支持

原来的iPhone,iPhone3G 以及 第一代和第二代的iPod Touch 均只支持 Armv6的 CPU 指令集。然而,随着iPhone3GS 这款新产品的发布, Apple 开始支持新的指令集 Armv7,iPhone5的所有设备支持Armv7s,且向下兼容。为了保持向下兼容,且支持旧有设备及旧有指令集,Apple支持胖二进制代码(fat binaries)也就是在可执行文件中支持更多的平台架构。  


但是好景不长,随着Xcode 4.5也就是最新版本的Xcode的发布,苹果宣布停止对armv6指令集的支持,强迫开发者放弃iOS 4.2.1及以前的支持Armv6指令集的版本。在我看来,我依然认为支持旧设备企业市场必须比公众市场更长时间,所以放弃4.2.1及以前的版本,并不是我想要的。经过一段时间摸索,幸运的,我们发现了一些办法,通过简单的修改及配置,我们能够编译armv6指令集的代码。  
以下是我们的一些方法,供大家参考: 
  • 找到一份旧版本Xcode的拷贝,推荐4.4.1,如果你是 iOS Developer Program的参与者,可以直接从developer.apple.com/ios下载。如果不是,那么还是问一下百度
  • 解压缩Xcode 拷贝出5.1的SDK Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/
  • 下来把拷贝出来的SDK移植进入Xcode 4.5中。例如: Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
  • 用Xcode打开项目,点击项目查看“Build Settings”属性,会出现一个新的选项“Base SDK”:选中 iOS 5.0
  • 还在Build Settings下,找到 Valid Architectures。需要把armv7s 改成armv6
  • 现在我们可以编译armv6了,但是还不能运行在任何armv6的设备上,因为Target不对。我们再点击Info选项,修改Target,例如 iOS 3.0或跟早的版本。你不会在下来菜单中找到3.0了,手填吧

以上就是所有的做法,但这一切并不太完美,例如你不能使用iOS 6的新特性,不能使用armv7s新的指令集等。当然了,如果你的Xcode通过Mac AppStore下载的,升级到新版本后,你还需要再加入一次SDK等等。  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值