最近又一个迭代结束了,正好是升级到xcode9.0 iOS11后的第一次发包。系统升级带来的不兼容基本上解决完了。打包发布灰度版后发现iPhone5c安装更新不了,WTF!!!。
领导下命令说不能抛弃这部分用户,只能硬上了。
以前看过新闻说,苹果已经把仅支持32的应用下架了,就以为苹果已经抛弃了手机是32位的用户(请原谅我的孤陋寡闻)。所以才造成32的手机下载不了,细细一想不是那回事,应该仅支持32位的app无法上架了,企业版的应该没有影响。
打开targets->build Settings看到下面
在Valid Architectures里面添加 armv7 arm64 armv7,这个是标准编译的配置符号,表明了我也支持32的了。那么问题出在哪里呢?
先补充一下基础知识
armv7 : iPhone4 iPhone4S
armv7s : iPhone5 iPhone5C
arm64:iPhone5S iPhone6 iPhone6+ 及以上版本
Architecture : 指你想支持的指令集。
Valid architectures : 指即将编译的指令集。
Build Active Architecture Only : 只是否只编译当前适用的指令集。实际编译出来支持的指令集是 Architecture&Valid architecture的交集。
在网上查找的方法是
1、打包用release吧,确认确认build settings->release的build active Architectures only是否选中,选中的话更改为NO
2、确认build settings 里边Valid Architectures有没有选中arm64和armv7
我的就是啊,还是不行,最后在同事的帮助下,发觉是在 项目名称->edit Scheme中 的archive中的build Configuration 选成debuge了,又因为上面图片中Debug选的YES, 所以仅支持了打包时插入的真机的类型。把他改成Release就好了。如下图:
知行办公,专业移动办公平台https://zx.naton.cn/
【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;
【运营】运维艄公,897221533@qq.com;****
【产品设计】流浪猫,364994559@qq.com;
【体验设计】兜兜,2435632247@qq.com;
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【java】首席工程师MR_W,feixue300@qq.com;
【测试】土镜问道,847071279@qq.com;
【数据】fox009521,42151960@qq.com;