首先来了解一下Architectures中几个参数的含义

ARMv6:ARM11内核用于iPhone2G和iPhone3G中的架构

ARMv7:modern ARM内核用于iPhone3GS和iPhone4/S中的架构

ARMv7s:A6内核用于iPhone5中的架构

ARM64:A7内核用于iPhone5S/C中的架构

然后在Xcode的build setting的Architectures一栏中有几个比较重要的选项,而代码的编译架构一般设置以下两项:Architectures和Valid Architectures。其中Architectures是指项目编译时生成哪几个架构的二进制指令,项目建成时会自动选择,但在Xcode5中其选择的结果是默认包含ARM64,若果项目使用没有在ARM64上编译的第三方库,通常会有很多错误或告警而编译不过,这时就必须将ARM64去掉,即选择armv7 armv7s,因为ARM的指令是向前兼容的,即使这样选择也能在iPhone5S/C上运行。

但在Valid Architectures一项中,必须选上你要支持的具体架构类型,比如这项没有arm64的话就不能在iPhone5S/C上运行了。

这里我猜测在Architectures选上最新的架构是为了app能使用架构对应的新硬件功能或提升运行效率,而库文件的架构则必须统一。而它尽管向前兼容,但有对应架构的二进制指令可能效率会最优。暂时没有找到文献,得到证据后补上。

文献地址:http://www.mobinett.com/2013/09/20/ios-7-xcode-5-project-build-settings-for-architectures-and-arm64-support/

最新文章

  1. jsp九大内置对象和四大作用域
  2. HDU 1710
  3. tp中session用来做权限方法 (缓解mysql压力)
  4. Java构造函数
  5. 【leetcode】Binary Tree Right Side View(middle)
  6. silverlight和wpf中暴露 给子类override
  7. support HTML5 in IE8
  8. ubuntu 常用命令集合版(二)【大侠勿喷,菜鸟欢迎】(转)
  9. java中String类型变量的赋值问题
  10. zookeeper如何永久监听
  11. PHP制作简单的日历
  12. 新浪SAE搭建项目
  13. winform 防止主界面卡死
  14. UVa 270 & POJ 1118 - Lining Up
  15. 自定义MapReduce中数据类型
  16. Oracle体系结构之内存结构(3)
  17. html5 contenteditable 实现table可编辑(网页版EXCEL)
  18. Android通过Chrome Inspect调试WebView出现404页面的解决方法
  19. 基于CentOS安装FTP服务器
  20. HTML5元素标记释义

热门文章

  1. xcode KVC:Key Value Coding 键值编码
  2. 使用CSS3伸缩盒实现图片垂直居中
  3. 重构HTML改善web应用设计
  4. SET ANSI_NULLS (Transact-SQL)
  5. Java随机数生成原理--转稿
  6. node中的get请求和post请求的不同操作【node学习第五篇】
  7. Android应用如何开机自启动、自启动失败原因
  8. Ajax 调用方式
  9. Let's Format Css Documents
  10. c++读取文件内容并保存到二维数组