上传至iTunesConnect有两种方式:XCode和Application Loader
1. Application Loader
好处是方便和迅速,大约5分钟左右完成上传
首先build IPA时需要:
1. Distribution的Profile
2. Select a method for export 界面中,选择第一个“Save for iOS App Store Deployment”
而一般build来给Device测试的话,选择第二个(否则即使上传成功,会在活动页面中看到缺少Beta版权限字样,这样无法进行TestFlight)
3. 然后就Export
4. 使用Application Loader上传,注意,每次上传的时候需要改版本号,在项目的Build选项中,从001开始计数即可
5. 如果成功,那么可以在iTunesConnect页面,你的App中->活动界面看到你上传的版本
接下来介绍一些在上传时会出现的Error以及解决方法
(1) Embedded binary's bundle identifier is not prefixed with the parent app's bundle ident
这涉及到使用Extension的注意事项:
使用的是SiriKit Intent Extension
其实是Bundle ID 的命名不符合规范
虽然SiriKit Extension和我们的App内存管理上算是两个project,但他们存在一定的依赖性,所以命名Intent的时候需要注意
主App的Bundle ID :com.example.clare
那么SiriKitIntent Extension的Bundle ID 需要为 com.example.clare.sirikitextension
这样不会报错
参考Link
http://blog.csdn.net/soindy/article/details/47186935
(2)上传后超过30分钟,iTunesConnect页面中看不到你的版本
应该是失败了,查看AppleID的邮箱,苹果客服会给你发送失败原因的邮件
以下是我上传成功但在iTunesConnect页面见不到版本碰到的两种情况以及相应的解决方案
(2.1 )iOS10以后,需要在项目的plist文件中添加下面声明,否则上传通过,但是审核不通过
KEY: Privacy - Camera Usage Description
VALUE:随意
注意,VALUE必须有,否则还是失败
声明的Privacy由你的App需要使用的功能决定,添加Privacy之后Xcode会给提示自动补充,另外常用的还有Contacts,Location等
注意2:如果项目使用了Extension,则在Extension中也有info.plist的存在,以SiriKitExtention为例,这个plist中需要添加Siri Usage以及语音识别的Privacy,还要记得添加内容,否则失败
(2.2) 查看邮件报错No example phrase was provided for INStartAudioCallIntent in the "zh-Hant" language
因为项目的默认语言为en,而在iTunesConnect中该App的描述默认语言为繁体中文,就会报上面的错误,所以需要将project 的Localization native development region设置为繁体中文“zh-Hant”
2. Xcode上传
粗暴的,在Archive以后,直接选择Upload to App Store即可,剩下只需要等,等等等等等