2019独角兽企业重金招聘Python工程师标准>>>

最近一次的Xcode 6更新默认不再支持arm7s架构,究竟是要废除不用呢还是仅仅只是一个疏忽? 目前的Xcode 6配置里定义${ARCHS_STANDARD}为armv7, arm64,当然这个定义前提是它会一再要求你删除掉你原本设定的构建架构。如果你选择按它所做的,你会发现你再也不能编译任何armv7s架构的东西。
当前iPhone5的A6和iPad4的A6X两款CPU都是armv7s架构,而之后在iPhone 5S、iPad Air以及iPad Mini Retina采用的A7处理器则是属于64位的arm64架构。
之前苹果为Xcode提供了armv7s架构支持的时候使得很多采用第三方库的开发者感到困扰,比如想使用Google Analytics,为了构建一个App就要求链接器所链接的所有静态库都必须支持CPU的架构。当第三方库竞相更新以支持最新架构的同时开发者们不得令自己的App停止了对armv7s的支持。
这倒不是什么大问题,虽然或多或少存在一些瑕疵,A6一样可以运行基于armv7架构的代码。会让人感到不爽的可能就是某天你的Xcode突然无法构建代码然后告诉你一个关于丢失某架构链接库的错误,其实不过就是因为你升级了你的Xcode而已。

想要消灭这个错误轻而易举。作为一个开发者你应该知道怎么打开Xcode的recommendation然后删除掉你在架构设置里写过的东西。如果设置显示为粗体,可用"Command+Backspace"组合键使其恢复为项目范围内的设置。

如果你是提供组件而非开发的话,需要的方案可能会有所不同。你会让开发者自行决定是否支持armv7s,因此你需要在你的静态库和框架内提供对armv7s架构的支持 。 而后开发者的链接器会选择出应用所需的架构,你会发现在"Build Active Architecture Only"设置为No的情况下会好有好几种架构被囊括在内。调试版本的构建默认这一设置为Yes而且只会支持当期设备或者模拟器的架构,而发行版本则默认该项为No而且支持所有处理器架构。
在静态库构建日志里面你会发现一行有关所有库及架构的,紧随其后的一行则是关于将所有独立库整合进一个"硕大"的通用库中去的。
另一查看某一架构是否支持的方法是使用file命令:
1 file libBarCodeKit.a
2libBarCodeKit.a: Mach-O universal binary with 3 architectures
3libBarCodeKit.a (for architecture armv7):current ar archive random library 4libBarCodeKit.a (for architecture arm64):current ar archive random library
5libBarCodeKit.a (for architecture armv7s):current ar archive random library
这个库支持了目前所有移动架构。如果你构建的是包括了模拟器架构的可运行版本的静态库或者静态架构的话,那么应该是会像下面这样 :
1 file DTRichTextEditor
2 DTRichTextEditor: Mach-O universal binary with 5 architectures
3 DTRichTextEditor (for architecture armv7):current ar archive random library
4 DTRichTextEditor (for architecture armv7s):current ar archive random library
5 DTRichTextEditor (for architecture arm64):current ar archive random library
6 DTRichTextEditor (for architecture i386):current ar archive random library
7 DTRichTextEditor (for architecture x86_64):current ar archive random library
总结一下:苹果又在此迫使我们做出新选择:放弃对armv7s的支持,这一架构已经随着两代64位产品的出现而遭报销。不过作为一个组件开发人员我认为仍然应该包括armv7s然后让开发者去决定支不支持。

转载于:https://my.oschina.net/jlongtian/blog/967672

Xcode 6更新默认不支持armv7s架构相关推荐

  1. 周鸿祎:ChatGPT可能两三年内产生自我意识;字节加入大模型之战;Ubuntu下一版本默认不再支持Flatpak| 极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 苏宓 出品 | CSDN(ID:CSDNnews) ...

  2. openssh8.6默认不支持公钥ssh(gogs无法使用)

    起因 升级了自己的linux后, 更新gogs代码时,发现用不了了反复测试原因,发现是最新版本openssh8.6关闭了公钥登录 错误提示 尝试了各种办法,会发现始终提示ssh登录失败 usernam ...

  3. 震惊!微软小冰公众号被封?示好国内,苹果拟推出特色版iPhone;谷歌更新Google Play支持名单:华为荣耀多款在列……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  4. 微信又更新了!支持上班摸鱼了

    一直以来,微信PC版的功能都很有限,只能进行聊天对话.文件传输等功能.对于日常需要登录PC端微信的打工人们来说,微信PC版俨然是一个办公软件. 但近日,微信突然又更新了,支持大家上班摸鱼了. 昨天,有 ...

  5. linux支持arm架构么_全球首次!中国推出一款支持X86、ARM等各种芯片架构的操作系统...

    众所周知,说起操作系统,大家都知道windows是最强大的,目前占了全球85%左右的份额.而windows之所以强大,一是推出时间早,二是因为wintel联盟. windows在早期和intel形成绑 ...

  6. 关于iOS6应用中第三方类库不支持armv7s的问题解决

    关于iOS6应用中第三方类库不支持armv7s的问题解决 参考文章: (1)关于iOS6应用中第三方类库不支持armv7s的问题解决 (2)https://www.cnblogs.com/shirle ...

  7. ARM惹众怒,美国芯片行业也开始抛弃它,跟随中国芯片支持新架构

    ARM曾以为它已经垄断了移动芯片市场,因此可以肆意,甚至还传出计划提高芯片架构授权费的消息,去年还计划限制高通等美国芯片企业自研核心架构,此前它已得罪中国芯片,可以说ARM真正惹了众怒,如此情况下这些 ...

  8. 支持图灵架构和安培架构的TensorFlow Python库

    自己编译的,支持图灵(Turing)架构RTX20系列显卡以及安培(Ampere)架构RTX30系列显卡.需要CUDA11.CUDNN8.Python3.7,已测试通过可训练可推理,使用时如遇见问题可 ...

  9. helm安装etcd-ha的失败的原因是bitnami不支持ARM架构-过程分享

    按照指定步骤后,会得到po和pvc都处在pending状态 [root@arm download]# wget https://get.helm.sh/helm-v3.10.3-linux-arm64 ...

最新文章

  1. C#读取数据库返回泛型集合 把DataSet类型转换为ListT泛型集合
  2. XHTML基础问答-给初学者
  3. 深入理解Hadoop集群和网络
  4. 【小松教你手游开发】【面试必读(编程基础)】几种常用的设计模式介绍
  5. html的hello,world
  6. BZOJ 4178 A
  7. matlab男女声识别,matlab男女声音识别
  8. Ubuntu16.04如何设置静态IP地址
  9. 网络工程师需要学c语言,网络工程师需要学哪些内容
  10. 寻找发帖水王java_2.3 寻找发帖水王
  11. html内嵌式选择器,CSS样式 CSS选择器(Cascading Style Sheet)
  12. android 解析程序包时出现问题
  13. 【外卖cps源码分享】支持美团饿了么
  14. 苹果Mac电脑L2TP连接公司内部网络失败解决方案
  15. Thinkpad R400待机后自动唤醒的解决办法
  16. 牛顿迭代法求一个数的平方根(python)
  17. EE4408: Machine Learning:
  18. Vue下面安装Element 的详细步骤
  19. MATLAB轻松解决优化问题——线性规划、0-1整数规划、匈牙利算法
  20. 数字电路(三)电路化简

热门文章

  1. 该如何在视频里添加文字呢?推荐3个视频加文字的方法
  2. 寻找强连通分量的Tarjan算法
  3. openGPS.cn - 如何防范被高精度IP定位采集数据
  4. keycloak node Adapter
  5. “剑走偏锋”之PDMS管口方位数据的json格式存储
  6. linux下怎么批量命名文件,Linux批量重命名文件
  7. 同步六进制加减法可逆计数器(JK)
  8. 世界那么大,你哪都别去了,来我带你了解CSS3(三)
  9. 【3d face reconstruction】DECA论文阅读
  10. Java 随机实现“泰坦”与“宙斯”之间的模拟交战。说明:本题以希腊神话中宙斯和泰坦间的交战为背景。分别建立宙斯和泰坦类......