App Store上架iOS App的详细流程

一、注册账号

1.1 选择类型

登录苹果开发者官网https://developer.apple.com/, 点击顶部的Support,点击membership,点击enrollment,最后点击Enrollment的Learn more about these programs链接进入https://developer.apple.com/programs/, 打开这个界面后,点击右上角的Enroll按钮,滚动到最底部,点击Start Your Enrollment开始申请:

App-Store01.png

这时需要你登录Apple ID,如果没有登录Apple ID,需要先注册(https://appleid.apple.com/account), 登录后会显示你的Apple ID的基本信息,在下方会要你选择账户类型,选择第二个,公司/企业账户:

App-Store02.png

1.2 申请邓白氏码

不要点击continue,点击Check now,检查公司是否已经有邓白氏码,如果没有,填写申请信息进行申请:


App-Store03.png

大概3~5个工作日后,邓白氏会发一封邮件到你邮箱中。然后将公司的详细资料准备好,当他们发邮件要资料时,需要快速的给到他们。申请通过后,我们会收到邓白氏码,但是要半个月后才能使用,因为苹果需要同步数据。

1.3 继续填写公司信息

等待一段时间后,重新进入enroll界面,选完类型后,直接点击继续,接着要填写公司的信息,要真实,跟营业执照上的一致。


App-Store04.png

然后继续核对一下信息,最下方如果出现当时申请邓白氏码的时候填写的地址的话,说明信息已经同步了,然后继续。
说明提交成功了,等待苹果的审核。

1.4 支付费用

很快苹果就给你留的电话,问一下基本的问题,然后就给你发了一份邮件。
点击里面的地址跳转登录之后,勾选协议,就跳转到支付界面。
提前准备一张支持visa或者万事达的信用卡,支付的时候要用到.填写信用卡信息,发票信息之类的。

二、申请开发者证书

两种主要的证书说明:


App-Store08.png

这是我们在开发者中心申请成功后下载到本地的发布证书(.cer文件),对应的还有ios_development.cer开发证书,双击后会安装到钥匙串中生成一个证书(含有公钥和私钥)。它的作用是让开发者使用的设备(也就是Mac)具有真机调试、发布应用或应用签名的权限。我们在团队开发中,一般需将这个证书导出p12格式共享给其他有需要的成员(如新员工)。


App-Store09.png

这是我们配置好证书后生成,下载到本地后的.mobileprovision文件,也就是我们常说的描述文件(PP文件),双击后可安装到Xcode中,或在Xcode中登录Apple ID后,下载到Xcode对应目录。它的作用是让开发者的项目(App),具有真机调试,发布的权限。

2.1 申请钥匙串文件

在Mac的其他工具中找到钥匙串,在左上角点击的钥匙串访问->证书助理->从证书颁发机构请求证书…:


App-Store10.png

填写邮箱地址:


App-Store11.png

选择保存的目录:
App-Store12.png

在桌面上就生成了一个CSR文件:


App-Store13.png

2.2 在开发者中心申请证书

App-Store14.png

2.2.1 选择Certificates申请新证书:

App-Store15.png

2.2.2 选择需要的证书类型,开发使用选择开发证书,发布应用使用的选择发布证书:

App-Store16.png

这时我们要用到刚从钥匙串中制作的.certSigningRequest(CSR)文件:


App-Store17.png

这个CSR其实就是公钥,私钥保存到了钥匙串中。
点击继续后,完成了证书的制作:


App-Store18.png

点击Download将生成的证书下载到本地(此时生成了.cer文件),双击运行,没有反应,但是在钥匙串->证书中查看已经安装了该证书。

2.2.3 注册App ID

App-Store19.png

点击Register完成注册。

2.2.4 制作APNs推送证书

申请好App ID后,我们可以开始制作远程推送用的证书,推送证书也分为两种,一种是测试用的推送开发证书,一种是上线用的推送发布证书。


App-Store19.png

2.2.4.1 点击申请好的App ID,点击Edit:

App-Store20.png

如果没有配置推送证书的话,在Push Notifications项是显示Configurable。


App-Store21.png

2.2.4.2 拉到下面,可以看到分为开发用证书和发布证书,选择对应的类型即可,这里选择发布证书,点击create certificate:

App-Store22.png

2.2.4.3 要求上传CSR文件,即在第一步钥匙串中生成的CSR证书。

2.2.4.4 下一步,制作完成,可以看到APNs证书,点击下载到桌面。

下载后双击安装进钥匙串中。此时开发者中心对应的App ID的推送变成了Enabled,说明推送服务可用了。


App-Store23.png

2.2.4.5 推送的P12证书的制作

双击刚下载下来的aps.cer文件,这时会在钥匙串中安装了APNs的证书,右键将它导出为p12的格式,设置密码,发给服务端人员推送使用,当服务端人员使用这个p12证书时需要密码。


App-Store24.png

选择p12格式,输入密码,服务端要用时,同时将p12证书及密码发给他们。同理,开发调试用的开发证书也同样处理。


App-Store25.png

2.2.5 添加注册设备

一般当使用Ad Hoc的发布方式才需要该操作步骤。

2.2.5.1 在Devices出,添加要注册的设备:

App-Store26.png

2.2.5.2 填写设备信息:

App-Store27.png

如何获取设备的UDID:
1)将设备连接Mac,使用iTunes查看:
App-Store28.png

2)在Xcode的window—>Devices中查看:
App-Store29.png

3)使用蒲公英的方式获取:
https://www.pgyer.com/doc/view/udid

2.2.6 创建描述文件

在Provision Profiles中配置描述文件:


App-Store30.png

选择配置的类型:


App-Store31.png

PS:更新,上图的Ad Hoc表述错误。Ad Hoc的发布方式主要是用于在指定的设备上测试使用(类似灰度测试),这种发布的方式需要注册设备UDID,只有在对应的设备ID的设备才能够进行安装测试,最多可添加100台设备。
接下来选择App ID:
App-Store32.png

继续选择证书:


App-Store33.png

如果配置开发证书,则这里只有开发证书可以选择,配置发布证书,则只有发布证书可以供你选择,所以也不用担心会选错。
如果配置开发证书,还需要配置这个项目哪些设备可以作为真机测试:
App-Store34.png

点击继续完成创建:
App-Store35.png

可点击下载,将.mobileprovision文件下载到本地,双击安装进Xcode对应的目录。
可以看到,.mobileprovision文件包含了证书、App ID和设备。

三、在iTunes Connect创建App

3.1 新建一个iOS App

App-Store36.png

点击新建App

3.2 填写基本信息

App-Store37.png

需要上传5张图片,可以只上传5.5寸的介绍图片,如果应用也支持iPad的,同时需要上传一张12.9英寸的iPad截图。


App-Store38.png

填写关键词、描述文字等:


App-Store39.png

填写App综合信息:
App-Store40.png

需要注意的是,如果App中有需要登录注册功能的,记得提供一个测试账号。
App-Store41.png

四、配置Xcode,打包

4.1 设置Scheme

App-Store42.png

将Archive的Build Configuration设置为Release:


App-Store43.png

Run中Build Configuration也设置为Release


App-Store44.png

不要勾选启动僵尸对象:
App-Store45.png

4.2 设置代码签名

App-Store46.png

注意要同时将TARGETS及PROJECT的代码签名都设置成Distribution

4.3 设置应用名称及版本号

App-Store47.png

4.4 开启消息推送

App-Store48.png

Entitlements文件中配置APS Environment:


App-Store49.png

钥匙串中要安装有APNs推送证书。

4.5 选择发布证书

App-Store50.png

4.6 勾选全屏显示(iPad)

勾选 Requires full screen:


App-Store51.png

不勾选的话,上传时需要你实现iPad的多任务分屏。

4.7 添加各种对应尺寸的图标

App-Store52.png

4.8 打包并导出

选择对应的Target,选择真机模式,不然Archive会变灰,不能点击:


App-Store53.png

然后会提示访问钥匙串中的密钥:


App-Store54.png

成功后,弹出如下界面:
App-Store55.png

选择Export导出ipa,选择第一个,发布到App Store:


App-Store56.png

点击Next,会要选择发布证书:
App-Store57.png

检测通过之后,选择导出,会生成一个有日期的文件夹,里面包含了要发布的ipa包,ipa包的制作完成。

五、使用Application Loader上传App

打开Xcode的Application Loader:


App-Store58.png

输入开发者账号和密码后,选择导入刚才导出的ipa包,需要一定的时间(约10~20分钟)来鉴定App。最后会出现如下的信息:


App-Store59.png

提示成功,说明我们已经将包顺利的上传到了App Store。

六、在iTunes Connect选择构建版本,最后提交审核

App-Store60.png

然后可以先点击存储,确保所有修改的地方都有保存。最后确定所有信息都填写无误后,提交以供审核。这是我们已经完成了上架的工作,接下来就是等待苹果的审核,一般3~7个工作日会收到苹果的审核结果,如果在iTunes Connect上显示可供销售,说明已通过审核,如果显示被拒绝,则需要根据苹果的拒绝理由进行修改再重新提交。

七、发布过程中遇到的一些问题及解决

7.1 上传时遇到的错误

在使用Application Loader上传App时遇到了一下问题,如下:


3App-Store61.png

经分析:如果主要是缺少一些支持iPad的图标、没有实现iPad Multitasking(iPad的多任务分屏)及不允许包含libReveal.dylib动态库。
解决的方式:

  • 1.1 补充缺少的iPad应用图标;
  • 1.2 考虑实现iPad Multitasking需要一定的工作量,在项目中配置勾选Requires full screen即可;
  • 1.3 移除libReveal.dylib库。

7.2 在提交审核时报的错误

分类中明明选了生活,但是被强制变成了杂志类应用,且一定要提供隐私政策网址(20181003后强制要提供,否则拒绝上架)。
解决方式:打包将info.plist文件中的Newsstand Icon的键删除,否则会被自动判定为该应用是报刊杂志类的应用,即使选择了分类也无效:


App-Store62.png

7.3 是否包含广告标识

检测ipa包中是否包含了广告标识:
cd 到你工程目录,执行下面的命令
7.3 是否包含广告标识
检测ipa包中是否包含了广告标识:
cd 到你工程目录,执行下面的命令:

$ grep -r advertisingIdentifier .

检测到了项目中的某个库中包含了广告标识,解决方式有两种:
1)在是否使用广告标识中选择“是”,并提供IDFA的使用信息;
2)将库从项目中移除,再进行打包上传,在广告标识中选择“否”。
至此,所有的上架相关的工作基本做完了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,999评论 4 368
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,102评论 1 302
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,709评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,439评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,846评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,881评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,062评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,783评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,517评论 1 248
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,762评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,241评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,568评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,236评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,145评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,941评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,965评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,802评论 2 275

推荐阅读更多精彩内容