您的位置:首页 > 移动开发 > IOS开发

iOS 上架时"此构建版本无效"的一些解决办法

2018-02-03 11:00 531 查看
这几天在app上架的时候, 遇到了上架时构建版本无效的错误, 找了很久的解决办法, 同时也问了很多人, 最后还是把问题解决了, 下面我就将排查的方法一个个的列出来, 不妨参考一下.

1.查看app构建状态

当进入iTunes store将上架所要填的信息填好之后, 要添加构建版本, 很多人都在等着构建版本, 但是没有消息

(请忽略左边正在审核状态, 这是我传成功之后的截图, 没上传之前应该是准备上架的状态.)

一般在上传的时候我比较喜欢使用
Application Loader
来上传, 也比较稳定. 于是我们应该在这里:

来查看app构建版本的状态.

2.构建失败后的邮件很重要

当咱们的app构建失败之后, 苹果会自动给苹果账户对应的邮箱发一个邮件, 来描述当前app构建失败的原因, 一般这个邮箱都不在我们程序员的手上, 需要找老板或者客户来要, 这一点是很挠头的, 但是没有办法. 这个信息我们必须要查看.

当然,每个人遇到的问题不一样, 在这里我只说我遇到的, 各位对号入座.

Dear XXX,

You have revoked your certificate, so it is no longer valid.

Certificate: APNs Development iOS
Team Name: xxxxx

Any provisioning profiles that include this certificate are no longer valid and must be regenerated for future use.

Best regards,
Apple Developer Program Support


第一次的原因是这个,确实是疏忽大意造成的推送证书的问题,我们需要在xcode里面查看这个推送按钮是否打开, 以及里面的信息是否显示正确


第二次遇到的问题就是这样的:

Dear developer,

We have discovered one or more issues with your recent delivery for "XXX". To process your delivery, the following issues must be corrected:

Invalid Bundle - Ensure that app executables and bundled frameworks use consistent architectures

Once these issues have been corrected, you can then redeliver the corrected binary.

Regards,

The App Store team


说是构建的二进制文件里面有不支持的架构, 当我第一眼看到这个解释的时候我是不理解的… 于是就开始排查

3.用户隐私数据保护(info.plist)

搜了一下网上大部分都是说自从iOS10之后苹果对于用户隐私数据的保护, 然后就将info.plist文件里面所有用到用户隐私的地方都设置了提醒(info.plist->Opes as->Source Code), 各位可以复制之后将提示文字改成你所需的内容即可,这是筛查的第一步.

<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相机</string>
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能访问麦克风</string>
<key>NSContactsUsageDescription</key>
<string>App需要您的同意,才能访问通信录</string>
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能访问位置</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始终访问位置</string>
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能访问日历</string>
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能访问提醒事项</string>
<key>NSMotionUsageDescription</key>
<string>App需要您的同意,才能访问运动与健身</string>
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能访问健康更新 </string>
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能访问健康分享</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能访问蓝牙</string
ae2b
>
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能访问媒体资料库</string>


4.三方库所支持的架构

上架到app store时,由于苹果公司的要求,只能使用真机对应CPU架构的SDK, 对此各位可以看一下百度鹰眼关于剥离所需架构的介绍:

http://lbsyun.baidu.com/index.php?title=ios-yingyan/guide/buildproject

因为项目中同时使用了百度鹰眼和百度地图的SDK, 百度鹰眼写了关于上架时所需要注意的架构问题,但是百度地图没有写



我将所有的关于百度地图的框架, 都在终端打印了一下它们所支持的系统架构, 再结合鹰眼所描述的, 我所用的项目里将其他的框架都剥离了, 只保留了arm64 和 armv7s 两个框架, 合并之后重新打包上架, 然后就构建成功了.

在解决问题的过程中, “不可数的爱!”群主给与了很大帮助, 排查了几个关键点, 很感谢~

这就是本人在上架时关于”此构建版本无效”的问题上的一些解决办法, 对这个过程进行一下记录, 也希望可以对同样遇到此问题的人提供些帮助. 谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息