App提交iTunes Connect,"二进制无效"问题解决方案。

昨天提交打包提交App,将包上传到iTunes Connect之后,以为就能发布了,便点击构建版本,发现没有刚刚上传的包,于是就点击"预发行"看一下,会看到"已上传",过不久再刷新一次再看,就变成了二进制无效,无比的郁闷,上传了五六次都是二进制文件无效,

原因:1.自2015年2月份开始,新上传到iTunes上面审核的app,必须支持64位,新上传是指第一次上传,

或者没有审核通过过,总之就是在AppStore上面没有上架的app,必须支持64位,包括工程里面的代码和用到的静态库文件

2.如果之前iTunes上面有审核通过的app,现在只是上传升级版本,更新版本去审核,这时也可以提交成功,iTunes上面验证二进制文件可以通过,

不必非得支持64位,但是不要高兴太早,这只是权宜之计,到2015年6月份上传的升级版本还是要支持64位,只是现在这种情况不需要强制,

个人建议还是尽快检查自己的代码和静态库,需要更换的及早更换,被拒一次要等得时间一般是2礼拜左右,非常不值得

废话不多说,现在就来说说解决办法吧!

App提交iTunes Connect,"二进制无效"问题解决方案。

1.先查看下是否支持64位(发布的App要支持64位)

如下图所示是支持64位

App提交iTunes Connect,"二进制无效"问题解决方案。

2.查看Schemes的Analyze和Archive是否是release模式

App提交iTunes Connect,"二进制无效"问题解决方案。
Analyze要为release模式

以上两个解决了还是不行,打包上传TMD还是二进制文件无效,why?

App提交iTunes Connect,"二进制无效"问题解决方案。
用Xcode打包上传时,苹果让我们默认勾选了Include app symbols for your application to receive symbolicated crash logs from Apple.

将勾去掉,但是还是不能上传还是二进制文件无效.继续解决问题

App提交iTunes Connect,"二进制无效"问题解决方案。
Architectures:你想支持的指令集。(支持指令集是通过编译生成对应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的包很大。)

Valid architectures:即将编译的指令集。(Valid architectures 和 Architecture两个集合的交集为最终编译生成的版本)

Build Active Architecture Only:是否只编译当前设备适用的指令集(如果这个参数设为YES,使用iPhone 6调试,那么最终生成的一个支持ARM64指令集的Binary。一般在DEBUG模式下设为YES,RELEASE设为NO)。

还有最好在iOS Device环境下打包,不要插上真机打包。

为了严谨可以将包导出,然后在终端检查看是否支持arm64,

App提交iTunes Connect,"二进制无效"问题解决方案。
上一篇:知问前端——概述及jQuery UI


下一篇:A Beginner’s Guide to the OUTPUT Clause in SQL Server