今天刚好客户定制的APP需要上架,也提供了新的开发者账号,所以就顺带把申请证书与发布流程写一遍。
-
证书是什么?
上面这个就是我们申请好证书后,下载到本地的.cer文件,也就是常说的开发证书与发布证书的样式。这.cer文件格式的证书是让开发者使用的设备(也就是你的Mac)有真机调试,发布APP的权限。
上面这个就是我们配置好证书后,下载到本地的.mobileprovision文件,也就是配置文件的样式。这.mobileprovision文件格式的配置文件是让开发者的项目(APP)能有真机调试,发布的权限。
-
申请流程。
1. 申请钥匙串文件
进入 (Launchpad),找到 (我的是在其他里面找到的),运行后再左上角
存储在桌面就好了,然后就完成退出钥匙串工具就可以了。
2.申请开发证书,发布证书
打开苹果开发者中心(https://developer.apple.com)
3.注册项目的Bundle ID
到这里就算注册完成了 。
4.添加测试设备
填写完下一步就好了。 获取设备的UDID:设备连接Mac 打开iTunes
如果觉得麻烦,或则条件不允许可以选择蒲公英提供的方式(https://www.pgyer.com/doc/view/udid)
5.配置证书
这里不用担心会选择错误,你配置开发证书,那这里就只有开发证书供你选择。配置发布证书,这里就只有发布证书供你选择。
如果是配置开发证书,就还会需要你设置,在这个项目中添加哪些设备作为真机调试的设备
完成创建后,只要下载这个配置文件,双击运行就可以了。然后退出网页。证书就已经申请好了,配置好了。你也可以真机调试,也能发布了。(Xcode7 以后不需要开发者账号也能真机调试,只要你在Xcode登陆 Apple ID 账号,不过发布还是需要开发者账号的)步骤:
登陆成功后:
然后下面会出现Fix Issue 按钮点击就好了,系统自动帮你调试好。(个人理解:这里的Bundle ID最好在后面加点后缀,不然你已经在网页注册过这个Bundle ID这里就会报错,或则你这里把Bundle ID注册了,你另外的账号就得换个Bundle ID了)
其实Xcode 7已经可以自动管理证书了,但是有时候还是有一些毛病。比如我已经创建好的证书,Xcode 还会自己去重新创建证书、也不能自定义命名。不过,据说 Xcode 8完善很多。具体能完善到什么程度,有待考证。
-
发布流程。
打开 iTunes Connect (https://itunesconnect.apple.com) 登陆账号;
不懂填写什么,可以点问号都是中文的提示
创建后就进入
填写完了,右上 存储 按钮,保存下。然后继续:
先上传APP截图,最新的规定是只要上传5.5寸的截图就可以了;视频,看个人,好像是十几秒左右吧,我没上传过,图片、视频的内容要是APP中真实存在的;然后就是APP描述(描述的内容要与APP相符合),关键词(据说不能出现竞品的名字,没考证过),技术支持网址,营销网址(两个网址没有也可以用公司的网站);下面部分:
都填写完了,就存储下。然后检查有没有错误,或则写错的。 (填写过程中,最好填写完一些就存储下,防止网络出问题,白弄,特别是上传完截图)然后回到Xcode,打开你的项目:
下面是导出ipa的提交方式:
后面几步也是选择发布证书,检查发布配置文件(注:如果是导出到分发网站的ipa,发布的配置文件必须是 Ad-hoc 的,企业级账号还可以是 In-house ,详细参考:蒲公英的说明),然后选择保存路径。然后在Xcode里面打开:
运行后,登陆开发者账号。把ipa文件添加进去,下一步 ,下一步,就可以提交到 iTunes Connect了。(提交到分发网站的请参考:https://www.pgyer.com/doc/view/app_upload)步骤差不多,就不详解了。提交过程的快慢跟网速有关,成功后就可以关闭Xcode了,回到 iTunes Connect。
进入活动。查看项目是否构建状态;如果完成了,就继续:
添加完构建版本,存储下,整个资料的填写提交差不多完成。然后设置:
这个根据个人需求,设置价格,销售范围等等。完了检查下,看有没有错误的地方。没有就可以点击右上角的提交以供审核了。
还有一个,你也可以添加APP在APPStore上的本地化,APPStore会根据你做的本地化,实现不同地区的账号看到你的APP显示的是本地化的语言,如果你没做本地化,那么显示就是你的APPStore主要语言
最后就是这个页面了,还是一样有就有,没有就没有,选择提交。就是等待审核了。现在新提交应用,我个人测试 3个工作日上架了,更新迭代的应用是24个小时上架了。这个具体,看运气了。
发布过程中遇到的问题:(持续更新)
1.提交上去了,等待构建完成.突然发现在活动中看不到构建的版本:
检查邮件,是不是因为权限问题,构建失败了,所以没有显示构建版本;