最近负责将公司某个项目的iOS应用上架到App Store,在上架的过程中,需要做的事情很多,但很多都不涉及到太多的技术问题,但是流程很多,而且对应用有很多要求,在上架的过程中也遇到一些问题,后也顺利解决问题,成功上架了。我觉得有必要记录一下过程及遇到的问题,希望对有需要上架的iOS开发者们有所帮助。

一、注册账号

1.1 选择类型

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

App-Store01.png

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

App-Store02.png

1.2 申请邓白氏码

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

App-Store03.png

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

1.3 继续填写公司信息

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

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

1.4 支付费用

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

二、申请开发者证书

两种主要的证书说明:

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

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

2.1 申请钥匙串文件

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

填写邮箱地址:

App-Store11.png

选择保存的目录:

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

2.2 在开发者中心申请证书

2.2.1 选择Certificates申请新证书:

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

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

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

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

2.2.3 注册App ID

点击Register完成注册。

2.2.4 制作APNs推送证书

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

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

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

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

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

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

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

2.2.4.5 推送的P12证书的制作

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

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

2.2.5 添加注册设备

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

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

2.2.5.2 填写设备信息:

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

2)在Xcode的window—>Devices中查看:

3)使用蒲公英的方式获取: 蒲公英 - 文档中心 - iOS 设备的 UDID

2.2.6 创建描述文件

在Provision Profiles中配置描述文件:

选择配置的类型:

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

继续选择证书:

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

点击继续完成创建:

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

三、在iTunes Connect创建App

3.1 新建一个iOS App

点击新建App:

3.2 填写基本信息

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

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

填写App综合信息:

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

四、配置Xcode,打包

4.1 设置Scheme

将Archive的Build Configuration设置为Release:

Run中Build Configuration也设置为Release:

不要勾选启动僵尸对象:

App-Store52.png

4.2 设置代码签名

App-Store54.png

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

4.3 设置应用名称及版本号

App-Store55.png

4.4 开启消息推送

开启Push Notification:

App-Store56.png

Entitlements文件中配置APS Environment:

App-Store57.png

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

4.5 选择发布证书

由于自动签名管理成开发证书,这里手动进行管理,选择对应的发布描述文件。

App-Store58.png

4.6 勾选全屏显示(iPad)

勾选 Requires full screen:

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

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

4.8 打包并导出

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

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

成功后,弹出如下界面:

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

点击Next,会要选择发布证书:

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

五、使用Application Loader上传App

打开Xcode的Application Loader:

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

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

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

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

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

7.1 上传时遇到的错误

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

经分析:如果主要是缺少一些支持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 Store上架iOS App的详细流程相关推荐

  1. 完整iOS APP发布App Store上架流程

    如果你是新手,将在这里清晰发布到App Store整个上架流程,还有相应的流程解决方案. 如果你上架过iOS APP,这里会了解到有更快捷的上架过程. 上架iOS最基本需要一个付费的开发者账号,还没有 ...

  2. iOS APP打包和发布App Store上架流程指南

    用hbuilderx打包ios app应用,需要先打包,然后在进行app store上架,用户才能下载使用. 下面我们来讲述打包和上架的全部流程. 首先,打包时需要一个打包证书的,这个证书是p12后缀 ...

  3. [苹果APP上架]ios App Store上架详细教程-一条龙顺滑上架-适合小白

    如何在 2022 年将您的应用提交到 App Store 您正在启动您的第一个应用程序,或者距离上次已经有一段时间了.作者纸飞机@cheng716051来给你讲讲将应用程序提交到 App Store ...

  4. iOS开发指南:从零基础到App Store上架(第2版 )

    第一部分 基础篇 第1章 开篇综述 2 1.1 iOS概述 2 1.1.1 iOS介绍 2 1.1.2 iOS 6新特性 2 1.2 开发环境及开发工具 3 1.3 本书中的约定 4 1.3.1 案例 ...

  5. App Store上架流程/苹果app发布流程

    App Store上架流程/苹果app发布流程: 第一步:拥有自己的苹果开发者账号: 开发账号分为两类:99美元(发布App Store用的,也就是上架苹果商店用这个):299美元(企业授信证书,不用 ...

  6. App开发到App Store上架,发布流程。

     网上已经有很多关于这方面的资料.我重点总结了三篇.大家可以参照着看. 1.IOS开发从新手到App Store上架. http://www.cocoachina.com/special/forn ...

  7. iOS 应用提交 App Store 上架被拒的原因收集

    2019独角兽企业重金招聘Python工程师标准>>> App Store审核指南中文版(2014.10.11更新) 前言 感 谢您付出宝贵的才华与时间来开发iOS应用程程序.从职业 ...

  8. iOS开发指南 从Hello World到App Store上架 第5版

    iOS开发指南 从Hello World到App Store上架 第5版 关东升 著 ISBN:9787115450630 包装:平装 开本:16开 正文语种:中文 出版社: 人民邮电出版社 出版时间 ...

  9. MacBook上如何运行那些尚未在Mac App Store 上架的 iOS/iPadOS 应用程序分享

    援引外媒 MacRumors 报道,论坛读者 Amy 反馈称在搭载 M1 芯片的 Mac 设备上可以运行任意 iOS 应用程序.随后外媒 The Verge 进行了实测,通过.ipa 文件的方式在 M ...

最新文章

  1. springboot接收文件上传_SpringBoot第十七篇:上传文件
  2. python写一个聊天程序_python实现一个简单的网络聊天程序
  3. 修改计算机用户权限,如何修改一个电脑账户为最低权限
  4. volatile学习(可见性,不保证原子性,禁止指令重排(双端检索机制))
  5. VC2010运行C程序时黑框一闪就没
  6. 浅谈opencl之错误码
  7. 【clickhouse】docker安装clickhouse后本地无法连接
  8. OpenCV移植到ARM-Linux(Exynos4412)全过程
  9. Aix5.3安装Bash Shell环境
  10. 手机忽然就安装不了东西,就是下载好apk打开后按不了安装。怎么处理?
  11. java内存溢出前端_【面试笔录】内存溢出和内存泄漏
  12. mysql无法授权问题
  13. php通用查询系统excel,php+excel通用课表查询系统
  14. 【MM32F5270开发板试用】硬件IIC读取SHT20温湿度传感器
  15. null underfined NaN 判断
  16. 用户注册+登录(下)
  17. 解决Win7缺失MSVCR120.DLL问题
  18. ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operat
  19. Node微服务之Seneca的使用
  20. 关闭新版Chrome中的深色主题

热门文章

  1. SparkCore快速入门系列(5)
  2. OpenCV图像特征匹配
  3. Docker图形化界面工具Portainer最佳实践
  4. SVNBucket 在线免费SVN代码托管服务器
  5. python 异常处理 应急预案
  6. Cyberpunk2077—赛博朋克2077 中代码矩阵解密小游戏之最优解寻找
  7. 哈尔滨工业大学信号与系统期末复习(一)
  8. sum怎么用python_python的sum函数怎么用 ?
  9. cetus权限连接主从mysql_cetus/cetus-rw.md at master · foxxnuaa/cetus · GitHub
  10. 声明式编程比命令式编程更好吗? NO! 你可能陷入了声明式编程的迷幻中!