App Store 上架流程 2016
转自:http://www.jianshu.com/p/996672107eb1
App Store 上架流程(持续完善中...)
说实话,公司要上架一个自己做的一个小项目。为了完成这个任务,菜鸟的 我一遍找资料一遍跟着做,一遍修改错误一遍查找解决方案。网上的资料大部分都是2015年以前的资料,资料有点不够过时,而且步骤配图也不是很详细,导致 我花费了整整4天的工作日只为实现appstore上架。哎呀,也是够蛋疼的,appstore上架的每个流程都要确认无误,每一步的错误都会导致最终的 失败。这个shit的操作,再也对你无爱了。
推荐一篇比较详细有用文章:
appStore上传苹果应用程序软件发布流程_iOS开发群雄_新浪博客
常见问题解决方案:
解决Invalid Code Signing Entitlements 问题 - lady-奕奕的个人空间 - 开源中国社区
好了,吐槽和发泄的话就少说,下面就正式进入Appstore上架流程了。
1.首先你的准备一个个人开发者账号、公司开发者账号。---我这里是公司开发者账号,是什么账号不要紧,因为只要有开发者(appstore发布应用)权限就可以了。
2.准备好Xcode以及要上架的项目。(Xcode最好是Xcode7.1以上的版本)--楼楼的Xcode版本就是7.1的。
3.进入苹果开发者官网:
点击account,如下图:
![](http://upload-images.jianshu.io/upload_images/1320655-f6c6140ec5bb3bce.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
进入登录界面,登录
![](http://upload-images.jianshu.io/upload_images/1320655-eb9d719026f30291.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 登录之后,点击Certificates, Identifiers & Profiles,为项目创建Bundle ID 、发布证书、以及权限文件(Profiles)
![](http://upload-images.jianshu.io/upload_images/1320655-e934029098ec2c93.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
进入Certificates, Identifiers & Profiles之后,点击App IDs-->"+"添加按钮, 为项目添加Bundle ID
![](http://upload-images.jianshu.io/upload_images/1320655-5db67750ea248c17.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
进入创建APP IDs 的界面。
App ID Description 的name 可以随意填。
![](http://upload-images.jianshu.io/upload_images/1320655-0021d35eb52db814.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Bundle ID 最好的格式是:(如:com.cpmpany.yayade)。
这里Bundle ID是要和Xcode项目中的Bundle Id 一致的。(最好将项目中的Bundle Id复制过来)
![](http://upload-images.jianshu.io/upload_images/1320655-2fac8226250bdb79.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果有推送功能,要把“Push Notifications”勾选,反正就是项目用到什么功能或服务就把相应的选项勾选。
![](http://upload-images.jianshu.io/upload_images/1320655-b3afd835f4fabbf5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
之后就是 continue -->register 完成注册bundle ID的工作
5.接下来就要请求证书。
找到mac 自带的“钥匙串访问”软件,钥匙串访问-->证书助理-->从证书颁发机构请求证书
![](http://upload-images.jianshu.io/upload_images/1320655-4ac380a6a307672d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
之后在证书助理界面填写相关内容,并将保存到本地桌面。
![](http://upload-images.jianshu.io/upload_images/1320655-f974654cfa45cd11.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如下图桌面上生成的.certSigningRequest证书
![](http://upload-images.jianshu.io/upload_images/1320655-3bbd604d3add2eae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6.返回到之前的开发者网站:
Sign in with your Apple ID - Apple Developer
去生成发布证书。
![](http://upload-images.jianshu.io/upload_images/1320655-9e333030d2c3e128.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
点击 “+”按钮之后,出现以下内容界面,只需要选择“App Store and Ad Hoc” 即可,然后continue。
![](http://upload-images.jianshu.io/upload_images/1320655-2bfd2167cfd8ce14.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
、、、、、、、、、、、、、、、、、、、、、、、
如果你发现Production 下面的 “App Store and Ad Hoc”不可选!!!
原因及解决方案:因为一个用户名下只能同时有一个发布证书,你之前建立了某个证书并且没有使用的话就无法再创建了,先把它撤销或者使用后才可以继续创建新的
、、、、、、、、、、、、、、、、、、、、、、、
两次continue之后,进入以下界面(如下图)
选择 “Choose File...”按钮 ,将我们刚刚生成的.certSigningRequest证书导入。--->continue--> downLoad-->Done
![](http://upload-images.jianshu.io/upload_images/1320655-ca4fc12ea03e548d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
生成发布证书之后,下载(downLoad)-->找到下载的文件双击自动安装。
之后我们可以在“钥匙串访问”软件看到我们刚刚安装好的发布证书。
![](http://upload-images.jianshu.io/upload_images/1320655-c4eec0784ec43a80.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果看到开发者证书无效。解决方案详见:http://my.oschina.net/sfandy/blog/617139?fromerr=OT2Ptq54
如果解决完“开发者证书无效”的问题就要将第6步操作重新做一遍,生成有效的证书。
7.生成profiles 证书
![](http://upload-images.jianshu.io/upload_images/1320655-30883ac1e416b2b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1320655-6d068c5ad8f03973.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
点击“+”之后
![](http://upload-images.jianshu.io/upload_images/1320655-dec6e683ea10f856.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
App ID : 选择含有对应Bundle Id 的app Id。
![](http://upload-images.jianshu.io/upload_images/1320655-c81f728f1163b4e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1320655-15585d5bb9ffd230.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
之后就是下载文件:downLoad-->找到下载的文件双击自动安装。
8. 进入ITunes Connect
![](http://upload-images.jianshu.io/upload_images/1320655-d7ccafb9f2e5381d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1320655-b6e2cee2521bf9fb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1320655-ded5646807a49d9c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1320655-cbf9d733e388684f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
创建成功之后会进入:
![](http://upload-images.jianshu.io/upload_images/1320655-3138c4736efcb3ed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
9.用Xcode打开你要上架的项目。
![](http://upload-images.jianshu.io/upload_images/1320655-0a67138f4273b0d5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
将 Release copy 改为 distribution,如下图。
![](http://upload-images.jianshu.io/upload_images/1320655-5b66541dde7f3b1c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1320655-90fbc81d81eeb741.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
选择我们刚刚的distribution
![](http://upload-images.jianshu.io/upload_images/1320655-99e8f372075673de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
配置(1.)TARGETS里面的General的Bundle Identifier,
![](http://upload-images.jianshu.io/upload_images/1320655-5f3a47a08eeae5aa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(2.)TARGETS里面的Build Settings的Code Signing Identity
这里的Provisioning Profiles 选择我们生成的Profiles证书。
![](http://upload-images.jianshu.io/upload_images/1320655-f3b050e5ca7145d6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(3.)PROJECT里面的Build Settings的Code Signing Identity
![](http://upload-images.jianshu.io/upload_images/1320655-1601642f82c8ef5f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
10. Archive
![](http://upload-images.jianshu.io/upload_images/1320655-4284305a9ee2a6f2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
archive时会遇到各种失败的情况:
(1.)
![](http://upload-images.jianshu.io/upload_images/1320655-39f76afcfaaf07f9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
解决方案 :将三方框架重新导入一遍:即在终端执行:pod update 命令
![](http://upload-images.jianshu.io/upload_images/1320655-633c097a3fb3242c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(2.)ERROR ITMS-90096
解决方案:ios app 上传时 ERROR ITMS-90096
(3.)Invalid Code Signing Entitlements
解决方案:方案A.
解决Invalid Code Signing Entitlements 问题 - lady-奕奕的个人空间 - 开源中国社区
方案B.Target或者是Project的Build Settings-->Code Signing Identity-->Provisioning Profiles 没有选择对应正确的Profiles证书
(4.) 出现No matching provisioning profile found: Your build settings specify a provisioning profile with the UUID “7738acfb-4d92-4525-adbe-fb66e9957009”, however, no such provisioning profile was found错误提示
解决方案:
试一下这个吧。
Your build settings specify a provisioning profile with the UUID
如果archive成功了,就会出现:
![](http://upload-images.jianshu.io/upload_images/1320655-5d37d7dcfcd5eae0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1320655-07f55885e6fba605.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果UpLoad to App Store 出现以下错误:
(1.)
![](http://upload-images.jianshu.io/upload_images/1320655-fd3a3483363d464a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
解决方案:重新upload to App Store.
11.UpLoad to App Store成功之后,回到ITunes Connect
完善app一些具体信息
![](http://upload-images.jianshu.io/upload_images/1320655-8e7f7c9680d6f0dc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
注意:
构建版本会在你UpLoad to App Store成功之后的半个小时内,显示构建的版本。
![](http://upload-images.jianshu.io/upload_images/1320655-1e9d7c3440e067d1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
半个小时之后就会出现如下(记得刷新该页面):
![](http://upload-images.jianshu.io/upload_images/1320655-e8c74050b159b79b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1320655-e4979b34e220e41c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在构建版本处,出现上面内容之后,直接提交审核。
![](http://upload-images.jianshu.io/upload_images/1320655-37b202ab604163fb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果提交不成功出现一下错误:
![](http://upload-images.jianshu.io/upload_images/1320655-663bc50c08b1c71a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
解决方案:技术支持网站没有填写,把它填上就可以喽。