ios上线流程
一、前言:
作为一名iOSer,把开发出来的App上传到App Store是必要的。下面就来详细讲解一下具体流程步骤。
二、准备:
- 一个已付费的开发者账号(账号类型分为个人(Individual)、公司(Company)、企业(Enterprise)、高校(University)四种类型,每年资费分别为$99、$99、$299、免费。)。
- 一个已经开发完成的项目。
三、检查:
- 你的Xcode必须是正式版的,beta版本的Xcode是不能上传项目的。
- 上传使用的 Mac 的 OS X系统必须也是正式版的,beta版本也不行。
- 请确认你安装的Xcode是从App Store或者是开发者网站下载的,而不是从其它渠道获取的安装包安装的,因为非官方途径下载的Xcode可能带有XcodeGhost 病毒。如何检查?
检查方法
四、生成发布证书
打开苹果开发者中心:https://developer.apple.com
打开后点击:Account苹果开发者中心下面输入已付款过的Apple账号和密码登录(如果你的电脑已经保存了密码,会直接进入)
开发者登录账号点击:Certificates, Identifiers & Profiles (专门生成证书,绑定Bundle Id,绑定device设备,生成描述文件的地方)
Member Center点击Certificates生成证书
- 选择iOS, tvOS, watchOS
- 选择All
- 点击右上角新添加证书
添加新证书1
由于是做App上传,选择生产证书(选择App Store and Ad Hoc)
选择App Store and Ad Hoc注意:一个开发者账号只能创建(1-2个开发(测试)证书,2-3个生产(发布)证书),如果你的App Store Ad Hoc 前面的按钮不能选择,则代表你的这个账号无法再创建新的生产证书了。
解决方法:- 从共同使用这个账号的人电脑上生成.p12文件,导入自己的电脑。(尽量不要执行下面第2步)
- 如果你想生成的话,把现有的删除一个(建议删除时间比较靠前的)。注意:如果删除一个证书,那么正在使用这个证书的人将不能再使用了,除非重新生成,然后利用.p12重新导入自己的电脑里!
注意:如果你想删除证书,执行下面步骤,否则略过。删除证书
然后接上上图,生产证书部分继续
生成证书2生成证书3生成证书4上传CSR文件去获取证书(CSR文件需要我们到本机钥匙串里去创建)
- 在Launchpad的其他里面,点击钥匙串访问弹出如下界面
其他钥匙串访问
- 工具栏选择钥匙串访问->证书助理->从证书颁发机构请求证书...
请求证书证书信息
- 将CSR文件保存到MAC磁盘的某个位置(这里我选择的是桌面,进行存储)
存储证书点击完成CertificateSigningRequest.certSigningRequest 文件
- 在Launchpad的其他里面,点击钥匙串访问弹出如下界面
然后回到浏览器,点击choose File..
选择CSR文件选择创建好的:CertificateSigningRequest.certSigningRequest 文件,点击选取
选取CSR文件点击Generate上传证书
上传CSR证书跳转到如下界面,点击 DownLoad 下载生成的证书(cer后缀的文件),然后点击Done,你创建的发布证书就会存储在帐号中。
下载生成的证书
注意:这个证书只能下载一次。点击下载后,关闭页面后就不能再回到下载页面了。
如果不需要给别的电脑使用,则直接跳过下面附加项,跳转到第五步(绑定Bundle Identifier)
附加项:生成p12文件在其他电脑上使用这个发布证书
- 双击安装证书后,打开钥匙串访问,选择安装的证书右键单击
安装的发布证书
注意:如果没有导出,可以把这个证书删除,然后重新双击下载的证书文件安装。
- 导出证书
导出证书
- 存储证书
存储导出的证书
注意:存储的文件格式一定要是
.p12
- 设置密码
可以为证书设置密码,也可以不设置密码;如果设置了密码,那么别人安装这个证书的时候就要输入密码,否则无法安装。这里就不设置密码了。设置密码 - 保存导出的证书
p12发布证书
如果需要在其它电脑上也能发布App,那么就必须要安装这个发布证书。
- 导出证书
五、创建App IDs和绑定你的App的Bundle Identifier
回到刚才的页面:https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action
点击App IDs,进入如下界面,点击右上角的 + 号
点击App IDs填写App IDs和Bundle Identifier
填写App IDs和Bundle Identifier注意:
- 上传App使用的Bundle Identifier(不要有-,都是英文+数字)必须是固定的,不能使用占位符。
- 如果你的Bundle Identifier已经在网站上绑定了,如果你又修改了你工程里面这个Bundle Identifier的话,需要重新进入到开发者账号里面绑定。
修改工程的Bundle Identifier
下面选择App中包含的服务,默认有两项,其余的根据自己项目的需求进行选择
App Services
点击continue
点击continue点击Register
点击Register点击Done
点击Done
六、生成描述文件(描述文件的作用就是把证书和Bundle Identifier关联起来)
找到Provisioning Profiles ,点击All,然后点击右上角 + 号
Provisioning Profiles因为是发布,所以选择下面App Store这个描述文件,点击Continue
选择App Store在App ID 这个选项栏里面找到你刚刚创建的:App IDs(Bundle Identifier) 类型的套装,点击Continue
选择发布项目的Bundle Identifier选择你刚创建的发布证书(或者生成p12文件的那个发布证书),根据自己电脑上的发布证书日期来选择,点击Continue
选择创建的发布证书在Profile Name栏里输入一个名字(这个是PP文件的名字,可随便输入,在这里我用工程名字,便于分别),然后点击Generate
给描述文件起个名字Download生成的PP文件,然后点击Done,双击安装(闪一下就完事了,没其它效果)
Download生成的PP文件生成的描述文件
六、在App Store开辟空间
回到Member Center,点击iTunes Connect
点击iTunes Connect登录开发者账号(还是之前已付费的账号)
Snip20160315_68.png登录成功后,点击我的App
点击我的App点击左上角那个+号,点击新建(注意:我们是iOS App开发,不要选Mac App啦)
新建 App依次按提示填入对应信息(SKU是公司用于做统计数据之类的id,根据公司需求填写),然后点击创建
填写App信息注意:如果都填好以后,可能会告诉你,你的App名称已经被占用,那么不好意思,你只能改名了!(而且建议大家起名不要往比较出名的App上靠,否则审核可能会被拒绝)
填写App其它信息
App信息填写价格和销售范围(由于我的开发者账号没有签订纳税合同,所以不能上线收费应用,所以只能暂时免费)
填写价格和销售范围依次把不同尺寸的App截图拉入到对应的里面
需要填写不同尺寸的手机屏幕截图(也就是拿不同尺寸的模拟器运行后,挑出至少3页最多5页进行截图然后拖到响应的区里)(在模拟器Command+S 就可以保存屏幕截图到桌面了)(注意:如果提示拖进去的图片尺寸不对,则把模拟器弄成100%然后再Command 加 S) 尺寸参照表在下面设置不同尺寸的App截图尺寸参照图
尺寸参照图填写App简介
填写App简介按提示依次输入
按提示依次输入错误提示:如果上传App 图标失败,提示Alpha错误的话,看下面。
打开你的图标图片,勾掉这个勾掉这个点击分级后面的编辑,如实填写后,点击完成
分级信息填写审核信息
填写审核信息版本发布就是:(然后最下面选择自动发布的话就是如果审核通过,就自动上传到App Store供人下载)
此时这个构建版本还没有生成,我们先把基本信息填写完毕,然后再进入Xcode中把项目打包发送到过来。
注意:填写完一定要点击右上角的保存。
七、在Xcode中打包工程
找到你刚刚下载的发布证书(后缀为.cer)或者p12文件,和PP文件,双击,看起来没反应,但是他们已经加入到你的钥匙串中。
在Xcode中选择iOS Device(这里不能选择模拟器),按照下图提示操作
选择iOS Device如果你的应用不支持横屏,把这两个勾去掉
如果你的应用不支持横屏,把这两个勾去掉查看版本号和构建版本号
查看版本号和构建版本号配置发布证书(ps:截图时选择的证书是错误的,大家注意一下,要选择发布证书)
配置发布证书注意:如果这里没有黄色叹号,代表你的配置没问题,如果有,那就是证书和描述文件不匹配,或者描述文件里刚才选的Bundle和现在的工程的Bundle Identifier不一致,去develop.apple.com 上找到你的描述文件在确认下绑定的bundle Identifier和你工程是不是一样的?
检查将断点、全局断点,僵尸模式等都要去掉。
去掉断点、全局断点



6.设置Release模式(Debug是测试的,Release是发布用的)




7.选择 Xcode下 Product 下 Archive(专门用于传项目,或者打包项目)



8.出现下图说明你没有添加开发者账号,点击右下脚Add... 按钮就可以添加

9.输入付费的开发者账号

可能会弹出下面这个界面,如果不弹出,按Command加。

10.然后回到Archive(选择已付费的账号),然后点击Choose

然后等待

11.选择Upload提交

12.如下就代表上传成功,如果出错,请参照iOS App上传项目遇到的问题

13.返回ItunesConnect网站上你自己的App信息中查看一下

14.在这个构建版本这里就可以添加代码

点击+号之后选择代码版本

15.提交以供审核

16.App已经从准备提交,变成正在等待审核状态

17.等待苹果的审核...
八、补充
1、构建版本的方法有两种,一种是使用 Xcode(上面已经介绍了),另一种就是使用一个叫 Application Loader 这个软件:

使用Xcode构建版本:
上面已经介绍(已经Archive的话,可以在Xcode: Window -> Organizer 进入)Upload to App Store…使用Application Loader 构建版本:
- 如上图,点击“Export...”,导出一个ipa文件(ps:为了保险起见、让苹果审核顺利一点,这里可以先点击“Validate…”来验证一下,这里就懒得验证了)
- Application Loader下载Xcode的时候就已经下载了(没有的请自行下载),Xcode 右键弹出下面界面
Open Developer Tool
打开Application Loader(如果没有登录,会提示你登录你的开发者账号)
Application Loader选取你导出的ipa文件(或者双击“交付您的应用程序”选取ipa文件),之后按提示操作就行,上传完毕没有报错的话,过几分钟左右就可以在iTunes Connect 里面就可以看到你上传的这个版本了。
ios上线流程的更多相关文章
- iOS开发流程总结
本文由社区会员umyueyue分享 以下是会员umyueue总结的iOS开发流程以及学习中的资料分享. 流程:注册.开发.真机测试.发布以及上线. iPhone iOS 4从注册到app上线开发流程 ...
- 海量用户-高并发SAAS产品测试上线流程
海量用户高并发SAAS产品测试上线流程 SAAS产品测试上线流程-以Web插件产品为例子 1 概述 在互联网产品中,IT公司之间更加注重产品功能之间的协作,SAAS形态的产品扮演着越来越重要的作用 ...
- iOS上线check_list
iOS 上线前 check_list 类型 序号 检查项 结果(pass/no) 安装 卸载 1 非越狱环境下的安装.卸载 2 越狱环境下的安装.卸载 3 安装文件检查,无泄漏用户信息的隐患 4 卸载 ...
- node服务通过Jenkins上线流程
构建流程 构建服务器: 拉取指定分支代码 构建服务器: 安装依赖 构建服务器: 执行构建 构建服务器: 如果上线流程,则在 git 上创建 tag,供回滚使用 构建服务器:打包 node 服务代码,和 ...
- 重学 Java 设计模式:实战责任链模式「模拟618电商大促期间,项目上线流程多级负责人审批场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 场地和场景的重要性 射击
- 微信小程序从开发到上线流程
一.微信小程序从开发到上线流程 注册小程序 1.登录微信公众平台 https://mp.weixin.qq.com 2.在微信公众平台>立即注册>小程序中注册微信小程序 3.在邮箱中激活并 ...
- 自学linux——16.LAMP项目上线流程
LAMP项目上线流程 一.编译安装与卸载Nginx(web服务器软件,类似于Apache) 1.安装nginx ① 下载nginx 网页下载https://nginx.org/en/downlo ...
- iOS APP上线流程
前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...
- iOS 项目上线流程
一.证书的导出 1.1 前期工作 首先你需要有一个苹果的开发者帐号,一个Mac系统. 如果没有帐号可以在打开http://developer.apple.com/ ...
随机推荐
- 小程序获取当前页面路径url
getCurrentPages()[0].route
- 一个java高级工程师的进阶之路【转】
宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) 工程师,您要对JAVA做比较深入的研究 ...
- 为免费app嵌入Admob广告
为免费app嵌入Admob广告,进而获得广告收入. 1.http://www.admob.com/注册一个帐号, 添加Add Mobile Site/app,输入相关信息后,提交完成, 下载Andro ...
- Oracle通用分页存储过程的创建与使用
Oracle通用分页存储过程的创建与使用 1.创建Oracle包的定义.使用 REF CURSOR 数据类型来处理 Oracle 结果集.REF CURSOR 是一个指向 PL/SQL 查询所返回的结 ...
- 理解Python命名机制
理解Python命名机制 本文最初发表于恋花蝶的博客(http://blog.csdn.net/lanphaday),欢迎转载,但必须保留此声明且不得用于商业目的.谢谢. 引子 我热情地邀请大家猜测下 ...
- scala编程第17章学习笔记(4)——元组
元组可以把固定数量的条目组合在一起以便于作为整体传送.不像数组或列表,元组可以保存不同类型的对象. 元组常用来返回方法的多个值.例如,下面的方法找到集合中的最长单词并返回它的索引: scala> ...
- 第十三章 springboot + lombok
lombok作用:消除模板代码. getter.setter.构造器.toString().equals() 便捷的生成比较复杂的代码,例如一个POJO要转化成构建器模式的形式,只需要一个注解. 注意 ...
- C语言存储类型
看c专家编程,有说存储类型一直不太清楚.看到一篇文章讲解c的存储类型,讲解了c语言中的各种变量的存储类型,而且是从进程.内存的角度讲解的,以前从没有这样理解过,觉得挺有用的,在这里转载过来. 首先要来 ...
- 泛型 Generic 类型擦除引起的问题及解决方法
参考:http://blog.csdn.net/lonelyroamer/article/details/7868820#comments 因为种种原因,Java不能实现真正的泛型,只能使用类型擦除来 ...
- Facade 门面模式 封装 MD
门面模式 简介 作用:封装系统功能,简化系统调用 门面模式要求一个系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行.门面模式提供一个高层次的接口,使得系统更易于使用. 门面模式的 ...