文档章节

IOS打包发布APP的所有详细流程

满月不满
 满月不满
发布于 2015/06/15 20:05
字数 3122
阅读 124
收藏 2
点赞 0
评论 0

转载,对于小白或者刚接触IOS的人特别有用,没有任何省略的步骤(我特别害怕那种 “这点就不在这里说了” 的文章),转过来做备份

原地址:http://blog.csdn.net/Companion_1314/article/details/44679361


(不要觉得这篇文章有点多就静不下心来研究,本人也是花了一天的时间才网上找了大量的资料,遇到了各种的问题之后,又花了好长时间来写这篇博客的,希望对你们有所帮助!

其他一些不错的参考:点击打开链接

一、申请苹果开发者账号

  首先需要申请苹果开发者账号才能在APP store 里发布应用。

开发者账号分为:(1)个人开发者账号   (2)企业开发者账号   主要的区别是:点击打开链接

1.个人开发者以及企业开发账号申请:点击打开链接


其中企业申请的时候需要邓白氏编码:

1.1     公司的邓白氏编码

给苹果公司发个邮件(或则直接拨打苹果开发者服务热线:4006 701 855 2)。他会给你提供免费注册邓白氏码的网址。直接注册就好.

  https://developer.apple.com/ios/enroll/dunsLookupForm.action

1.2     公司的营业执照副本和公司中英文名对照证明

证明你公司英文名的信件(这个其实只要一句话说一下就好了,比如你就写此信标明我们公司的英文名是 XXXX就ok了),公司盖章。

  很多国内公司都无法传真到国外,这个时候你可以使用网络传真,推荐用 http://faxzero.com/ 

1.3     一张开通VISA或MASTER的信用卡

可以是个人的,提交帐号给Apple代扣款($99美金)

2、 步骤

2.1     申请邓白氏码

首先要申请邓白氏码,在申请的第二天你就会接到电话,跟邮件。那个邮件不是邓白氏码。而是你的申请码。最好是留着吧。是个十位码, 大约中午的时间你会接到华夏邓白氏的电话。就是跟你核对一下资料。大约晚上的时候,你就会接受到新的邮件。那个才是邓白氏码。这个邓白氏码是无效的,需要等至少14天后才可以使用.

  等14天后,去ios develop网站申请公司开发者账号,如果提示邓白氏码无效,则给苹果开发者中心打电话,告诉他邓白氏无效,她会处理(可能是和邓白氏联系)过几天(具体几天客服会告诉你)邓白氏码就可用了。

  然后你会填公司信息的时候可能会遇到提示说公司信息和苹果数据库中的信息不符(其实是邓白氏的数据库与苹果的数据库未同步),不要着急,接着打电话,她会告诉你在苹果数据库中的公司信息。然后告诉你一个邓白氏的联系邮箱(这个邮箱是邓白氏专为申请苹果公司开发者账号使用的)你把苹果数据库中的公司信息发给邓白氏让它更改。再等14天,再去申请,一切就ok了.这种情况不是每个人都会遇到。如果信息相符,那是最好的了。不用再等14天了。

 

PS:耐心等待14天后再注册,邓白氏码有尝试次数限制。


2.2     信息注册

申请完邓白氏码后,就是去注册iOS公司开发者账号了, 到 http://developer.apple.com/programs/ios/ 这个开发者账号注册入口,开始enroll(注册)。如果你已经有apple的个人账号了,那你可以将你的个人账号作为开发者账号,不然你就新申请一个账号。

  当让你选择你是注册成为个人或者公司时,请选择公司。注册是填信息一定要注意,不要乱填,要真是填写,不然后面验证时你就麻烦了。当问你你要选择那个开发平台时,你要选择ios.

  当你注册完个人apple账号,就会转入公司信息填写。公司信息填写也要真实填写,这个是会和你的公司营业执照挂钩的,后面审核会用到。注册信息只能是用英文的,所以对于没有英文名的公司和地址,都要先去处理这些东西了。填写完公司信息,下一步就是填写邮件(这个后期会用来跟apple开发者中心联系)和代表人(你可以选择你自己或者你老板的名称,都可以)。接下来就是等待对方审核了,这一般会等待1-2天,如果审核过了,对方会给你发邮件。

 

PS:代表人,及legal entity字段,必须与申请邓白氏码时填写的一致,否则无法通过,这个即是上面说的数据库信息不符的字段。

2.3     传真资料

 apple那边如果通过了你的公司信息,就会发邮件要你传送资料过去(对方会用 devenroll@apple.com这个邮件)。你需要传送你的公司营业执照,一封证明你公司英文名的信件(这个其实只要一句话说一下就好了,比如你就写此信标明我们公司的英文名是 XXXX就ok了),公司盖章。然后传真过去。很多国内公司都无法传真到国外,这个时候你可以使用网络传真(我就是这么做的),推荐用 http://faxzero.com/ 

这一步是最麻烦的,要等3-4天的审核期

 

PS:实在不行可以传真到亚洲苹果并请他们转交苹果开发者团队。 不过苹果不推荐这么做。

2.4     电话验证

   如果你的传真对方通过了,对方会发邮件给你,让你打电话进行验证。里面有个中文区电话,你可以选择打这个电话。

2.5     付款

电话验证完,一般几分钟你就会收到邮件让你付款。apple是不开通国内在线付款的,所以,你得填一张purchaseform。你要准备一张跨国的信用卡(比如visa,或者mastercard等),把你的信用卡信息填进去,然后吧purchase form再次传真过去。基本上等2天后,如果对方通过你的付款,你就正式开通啦。

2.6     激活账号

付完款后,账号基本就开通了,然后苹果会发一个激活账号的邮件,邮件中有激活码,直接点激活码去激活。

到这里开发者账号申请结束。


二、申请APPID

1 添加BundleID



点击添加之后


选择要发布的商店




最后提交就好了

2 连接iTunesConnect

        刚激活的账号暂时无法登录iTunesConnect,需要等苹果给你发一封关于可以登录的邮件后才能登录,否则会说你无权限。


3 创建新应用

3.1  登录iTunes Connect后,点击“管理你的应用” 进入管理页。



3.2  点击“添加新的应用”按钮


  

前两个就不说了,第三个SKUNumber什么意思我也不知道,为了保持唯一,并好记,就和BundleID一样。第四个BundleID一经选择,就不能更改,所以要谨慎选择。

3.3 设置生效时间和价格


这里的价格是按层级来的,并不是具体的多少钱,Tier 1为1美元,在中国商店就相当于6元人民币。

注意下面还有一个你的APP发布的商店,默认是所有商店都发布。



3.4 设置APP信息

    包括版本号,所有权


    还有APP的内容描述,默认都选择None,根据自己的APP实际情况


然后是一些元数据,关于APP的描述,用于显示在APPStore中。关键字用于用户可以利用这些关键字搜索到你的APP。SupportURL是当你的APP出现问题时,用户可以联系的地址。

 

接着是APPStore审核的反馈信息,包括联系人信息,以及提供APP的测试账号。


       最后是上传Icon、屏幕截图,屏幕截图不超过5张。

 

       提交,就有APP ID了。


4      PS:

           注意现在的状态为Preparefor Upload,点击ViewDetails, 进入后点击“Readyto Upload    Binary”


           接着会询问你是否使用加密功能,选择后保存。

 

           现在的状态为“WaitingFor Upload”了。


三、上传应用

1 创建CSR文件

1.1   打开电脑中的钥匙串,在应用程序中找到



1.2 选择导航栏中下面的选项

 

1.3 然后输入用户邮箱,名字,选择保存到硬盘。



注意:用户的Email 是开发者账号的邮箱,CA邮箱可以不用填写,前提是你选择的是存储到硬盘


这时在本地就生成了一个这样的文件

(这个文件在开发者中心生成发布证书的时候需要用到)

2 创建发布证书

2.1 选择App Store


2.2 上传刚刚创建的CSR文件


2.3 上传后证书创建成功,下载到本地。


2.4 双击该文件,加入到钥匙串中。


这样做的目的就是为你的电脑安装发布许可证,只有这样你的电脑才能发布程序


3 创建ProvisioningProfiles

3.1 选择APP Store                              


3.2 选择App ID

 

3.3 选择证书

 

这个证书也就是刚刚生成的那个证书,在这我遇到的一个错误就是,有两个证书,我选择了一个错误的,结果打包出来的描述文件有问题,导致发布失败。

3.4 命名


选择的名字,在安装到Xcode的时候可以看得见。


3.5 最后提交后下载ProvisioningProfiles文件到本地,双击打开添加到Xcode中。


4    Xcode设置

4.1 设置target

                   这里的BundleIdentifier必须和前面申请的BundleID一致;版本号也必须和前面申请AppID时的版本号一致。


4.2 修改签名文件,必须选择前面创建的ProvisioningProfiles文件


 

4.3 添加发布配置

如果没有添加一个


接下来就是打包程序


在我们的xcode 中有一个打包的按钮

打好包后,它会自动弹出来,也可以在 orignize 查看


之后就是验证信息,点击上图的Validate 进行验证一下,确定没问题了在提交。不验证也可以提交,但是如果不验证的话有问题会很麻烦,最好养成先验证后提交的好习惯。

点击验证后,出现一下图框,在这边输入开发者的账号和密码,点next

选择一个描述文件(具有发布证书的描述文件)

这个界面说明你的app没问题,如果有问题的话会提示错误或警告,有错误的要要重新修改你的app再次打包验证,有一些警告可以不做修改直接提交,这个纯粹是看你是否完美主义。


第三步——将应用提交到app store

苹果推荐用xcode自带的application loader 来提交我们的应用,但是除了用这个以外还能用其他的,下面来分别介绍。


第一种——直接将应用发到app store去(不推荐)

点击distribute

选择

点击submit后就可以提交了


第二种,用xcode自带的application loader来提交我们的应用。(推荐)

和上述方法第一步相同点击distribute,但是选择第二个选项

这里将生成一个ipa供我们保存到本地



保存好后,选择 xcode — open develop

er tool — application loader

看到如下图片,填好信息后,就可以上传了


这边点击“选取”后,将我们刚刚存在本地的.ipa 文件上传就可以了

上传成功,这个时候,可以看到你的app的状态也变成了 waiting for review 。上传完成后的5、6天可以查看我们应用的状态看有没有改变,没改变也不用着急,当苹果审核时,状态会变成 in review。接下来你就可以知道你的应用是成功了还是被拒绝了。



本文转载自:http://blog.csdn.net/Companion_1314/article/details/44679361

共有 人打赏支持
满月不满
粉丝 0
博文 7
码字总数 781
作品 0
黄浦
程序员
Appuploader的安装介绍

注意:下载AU后需安装java8运行环境才能启动;安装好了最新Java8运行环境,解压AU软件包,无需安装,Windows 64位系统点击appuploader.exe启动;如果是Linux/Windows 32位系统或Mac系统双击appuplo...

webmirror
05/11
0
0
iOS证书(.p12)和描述文件(.mobileprovision)申请

iOS有两种证书和描述文件: 证书类型 使用场景 开发(Development)证书和描述文件 用于开发测试,在HBuilder中打包后可在真机环境通过Safari调试 发布(Distribution)证书和描述文件 用于提交A...

-Man
2015/11/19
0
0
如何采用Yeoman + Grunt + Bower开发基于PhoneGap的Hybrid APP

一直想开发手机应用,也跟着教程学做了两个iOS小应用,但开发思维上的转变需要一个长期的过程,而且iOS系统功能很强大,陌生的地方也很多,很多功能不知道该自己开发还是系统上已经存在,也不...

僵尸猫
2015/06/24
0
6
Genesis-3D新手入门——14.发布到iOS平台

发布到iOS平台 在游戏制作完毕后,需要进行平台打包才能最终发布。Genesis-3D是一个可以支持很多平台的编辑器,这一篇我们就来学习如何让你把制作出的游戏在iOS平台上运行。 准备步骤 1.注册...

lengche
2014/02/20
0
0
Iphone开发这一路走来(新手必经)

今天把自己ios开发总结的整个流程和找到的资料贴出来,方便自己也方便大家。 流程:注册,开发,真机测试,发布,上线。 iphone iOS4从注册到app上线开发流程 http://blog.csdn.net/linzhij...

abcMx
2013/12/02
0
0
IOS工程自动打包并发布脚本实现

作者:webfrogs 转载请注明出处。 前言 IOS的开发过程中,当需要给测试人员发布测试包的时候,直接使用xcode来做的效率是非常低下的。尤其是当有一点小改动需要重新出包时,那简直是个折磨的...

孙哲
2015/03/26
0
6
iOS Provisioning Portal概述

注意: iOS Provisioning Portal 仅可以在PC上的 Safari和Firefox浏览器中有效。 iOS Provisioning Portal概述 概述 和 provisioning(服务提供) 助手执行的自动设置不同, iOS Provisioning...

JohnZr
2012/09/26
0
0
React Native 在卖菜公司的落地之路

摘要 本次分享介绍了RN应用从开发到上线以及最后维护的整个过程,其中涉及到了组件化、热更新、打包、线上监控等方方面面。 Why RN 之所以要选择RN,一方面是因为效率问题,另一方面则是历史...

06/26
0
0
React-Native 热更新 CodePush

1. CodePush (2017.8.17) 0.网上资料和官网最新的不一样 1.安装CodePush: npm install -g code-push-cli 2.创建CodePush账号: code-push register (会打开网页进行注册,有点卡) 3.复制 toke...

mochixuan
2017/09/30
0
0
iOS高仿QQ录音、智能语音诗歌、高仿微信图片浏览源码

iOS精选源码 好看实用的日期时间选择器--CCTimePicker 高仿QQ录音功能 QQ侧滑抽屉效果 MMActionSheet介绍(自定义的类似于微信的UIActionSheet弹出框组件) 智能语音查询诗歌 仿课程表表格效果...

sunnyaigd
2017/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git 基础 - 远程仓库的使用

远程仓库的使用 要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某...

谢思华
11分钟前
0
0
面试宝典-悲观锁和乐观锁

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。 乐观锁(Optimistic...

suyain
13分钟前
0
0
崛起于Springboot2.X之集成MongoDb使用mongoTemplate CRUD(27)

1、pom依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version></dependency><dependency> <groupId>log4j</......

木九天
23分钟前
0
0
切分log日志

新建logback.xml放到resource里面 <?xml version="1.0" encoding="utf-8"?><configuration> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <......

talen
28分钟前
0
0
spring @Resource 和 @Autowired 的使用区别

这两个 注解 @Resource 和 @Autowired , 常识都知道 @Resource 是 JAVAEE 自带的,@Autowired 是 spring 的自定义注解。 一般情况下, 使用 bean的时候, 这两个注解 随便使用一个即可。 但...

之渊
33分钟前
0
0
springboot集成elasticsearch客户端问题记录

1背景说明 服务端ES版本为5.5.2,springboot版本为1.5.6。 工程中添加如下依赖 2问题记录 2.1 NetworkPlugin类找不到 报错java.lang.ClassNotFoundException: org.elasticsearch.plugins.Net...

zjg23
35分钟前
1
0
快速构建ceph可视化监控系统

前言 ceph的可视化方案很多,本篇介绍的是比较简单的一种方式,并且对包都进行了二次封装,所以能够在极短的时间内构建出一个可视化的监控系统 本系统组件如下: ceph-jewel版本 ceph_expor...

万建宁
35分钟前
0
0
Java构造器使用注意

public class 父类A {int age = 10;protected void say() {System.out.println("父类A");}public 父类A() {override();}public void override() {Syst...

咸鱼AI
35分钟前
0
0
TensorFlow 线性分类

构造直线 z = 2 * x - 3 * y + 4 x0*w0+x1*w1+b=0 x1=-x0* w0/w1-b/w1 斜率 k= -w0/w1 截距 -b/w1 随机生成数据,加入一定的偏差,用直线将二维平面分为两部分 使用线性模型拟合参数 损失函数...

阿豪boy
39分钟前
0
0
翻译冒泡排序测试

翻译一个冒泡排序: var a = [1,3,2,4,6,5];var f = 0;var n = a.length ;for( var i =1; i<= n; i++) { for( var j = n-1 ; j >= i; j --) { if(a[j] < a[j+1]) { ......

钟元OSS
40分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部