xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)

开发环境:xcode4.4.1html

iphonesdk:5.1.1android

开发机器:macBookAirios

真机部署测试:apple我的开发者IDweb

 

不管是ios7或是如今的xcode5,虽然有些样式改变了,可是实际上的流程仍是这个样子,因此供您参考,少走弯路,仍是有必定的做用。xcode

向导:安全

必备IDP证书和distribution证书(第一个证书是真机部署测试时用到的,后者证书是发布时须要用到的,缺一不可)。服务器

我就说说接下来应该作的流程。在你保证拥有以上两个证书的前提下,距离app提交审核,已经剩下两大步了:1,ituneconnect建立app,填写项目详细信息。2,xcode打包验证经过,提交项目。好的,我就开始说重点了,童鞋们跟着个人流程走,保证不会迷糊和出错。app

 

1.预先准备 iphone

在你开始将程序提交到App Store以前,你须要有一个App ID,一个有效的发布证书,以及一个有效的Provisioning profile。下面来看看它们各自的做用。ide

 

Step 1: App ID(应用ID)
App ID是识别不一样应用程序的惟一标示符。每一个app都须要一个App ID或者app标识。目前有两种类型的App标识:一个是精确的App ID(explicit App ID),一个是通配符App ID(wildcard App ID)。使用通配符的App ID能够用来构建和安装多个程序。尽管通配符App ID很是方便,可是一个精确的App ID也是须要的,尤为是当App使用iCloud 或者使用其余iOS功能的时候,好比Game Center、Push Notifications或者IAP。

 

若是你不肯定什么样的App ID适合你的项目,我推荐你读下苹果关于这一主题的文档:Technical Note QA1713

 

Step 2: Distribution Certificate(发布证书)
iOS应用都有一个安全证书用于验证开发者身份和签名。为了能够向App Store提交app,你须要建立一个iOS provisioning profile 。首先须要建立一个distribution certificate(发布证书),过程相似于建立一个development certificate(开发证书)。若是你已经在实体设备上测试你的App,那么你对建立development certificate就已经很熟悉了。

 

若是对此不熟悉,我建议你读下苹果关于signing certificates和provisioning profiles的详细指导

 

Step 3: Provisioning Profile(配置文件)
一旦你建立了App ID和distribution certificate,你能够建立一个iOS provisioning profile以方便在App Store中销售你的App。不过,你不能使用和ad hoc distribution相同的provisioning profile。你须要为App Store分销建立一个单独的provisioning profile,若是你使用通配符App ID,那么你的多个app就可使用相同的provisioning profile。

 

Step 4: Build Settings(生成设置)
配置App ID、distribution certificate 和provisioning profile已经完成,是时候配置Xcode中target的build settings了。在Xcode Project  Navigator的targets列表中选择一个target,打开顶部的Build Settings选项,而后更新一下Code Signing来跟以前建立的distribution provisioning profile相匹配。最近添加的provisioning profiles有时候不会立马就在build settings的Code Signing中看到,重启一下Xcode就能够解决这个问题。

配置Target的Build Settings

 

Step 5: Deployment Target(部署目标)

 

很是有必要说下deployment target,Xcode中每一个target都有一个deployment target,它能够指出app能够运行的最小版本。不过,一旦应用在App Store中生效,再去修改deployment target,你要考虑到必定后果。若是你在更新app的时候提升了deployment target,可是已经购买应用的用户并无遇到新的deployment target,那么应用就不能在用户的移动设备上运行。若是用户经过iTunes (不是设备)下载了一个更新过的app,而后替代了设备上原先的版本,最后却发现新版本不能在设备上运行,这确实是个问题。

 

 

(1) 当你决定提升现有app的deployment target时,要在新版本的版本注释中进行说明。若是你提早告知用户,那么至少有一点,你已经尽力阻止问题的发生了。

 

 

(2) 对于一款新app,我常常会把deployment target设置为最近发布的系统版本。由于新iOS版本发布后,渗透率的增加速度是使人难以置信的。不少人认为提升deployment target会失去大部分市场,这个说法并不许确,好比iOS 6,iOS 6发布后一个月,超过60%的设备已经进行了更新。但对Android而言,就是另一回事了,Android用户并不会像iOS用户那样热衷于更新操做系统版本

【以上简而言之,最好从项目设计时,就决定是否考虑兼容低版本用户,支持的话,写代码时使用ios新特性时最好作一下判断,if是老版本if是新版本】

 

 

2. Assets(资源包)

Step 1: Icons(图标)
Icon是App中不可分割的一部分,你要确保icon尺寸不会出现差错。
iTunes Artwork: 1024px x 1024px (required)
iPad/iPad Mini: 72px x 72px and 114px x 114px (required)
iPhone/iPod Touch: 57px x 57px and 114px x 114px (required)
Search Icon: 29px x 29px and 58px x 58px (optional)
Settings Application: 50px x 50px and 100px x 100px (optional)

 

Step 2: 屏幕截图
屏幕截图的做用不言而喻,你能够为每一个app上传5张截图,虽然至少须要上传一张,可能不多有人会只上传一张图片。另外,你还须要分别为iPhone/iPod Touch和iPad/iPad Mini准备不一样的屏幕截图。这也是不小的工做量,但却能展现应用的另外一面。Shiny Development开发的一款售价6.99美圆的Mac软件Status Magic能够为你节省很多时间。Status Magic能够帮你把状态栏放在截图的正确位置。

 

屏幕截图和icon是应用给用户的第一感受,直接关系到用户会不会购买。不过,你所上传的屏幕截图也不必定非得是实际的截图,看看Where’s My Water? 截图能够经过使用此策略,更具吸引力和说服力。

 

Step 3: 元数据
在提交应用以前,要管理好app的元数据,包括1应用名称、2版本号、3主要类别,4简洁的描述,5关键词,6.支持URL。若是你须要更新应用,你还要提供新增长的版本内容。

 

若是你的应用须要注册【打开APP须要登陆,好比飞信】,你还得向苹果提供一个测试帐户或者demo帐户,这样审核人员就能很快进入app,而不用再注册帐号。

 

 

3. 提交准备

Xcode 4之后,开发者提交应用的过程就简单多了,能够直接使用Xcode进行提交。首先在iTunes Connect中建立app,访问iTunes Connect,使用你的iOS开发者帐号登录,点击右边的“Manage Your Apps”,点击左上角的“Add New App”,选择“iOS App”,而后完成表格。

(注意,建立时填的APP就是你开发的项目,名称和ID必定要相同)。https://itunesconnect.apple.com

 

点击进入

左上角,添加一个APP,若是你的开发帐号以前已经提交过app,下面就会列出来。

第一个页面,选择语言,应用名称,skunumber,bundleID(会让你选择本身建立项目的APPID)。

SKU Number是一个用来识别app的特殊字符串。我常用app的bundle identifier。最下边是app的Bundle ID,你能够从下来菜单中选择通配符App ID或者准确的App ID。

这个页面是选择app上线的日期(由于apple还须要审核,通常都是推迟几天),售价,以及是否支援教育机构之类的。

以上页面是写版本号,公司名称,软件首类别,次类别(注意两个类别不得重复,不然不会经过),以及评级划分。

以上是软件的内容描述,关键字,技术支持url,以及下面的技术负责人的名字,姓,email,手机号码,这些都很简单,大家都懂的。

----------------------------------------------------------------------------------------------------------------------------------------

接下来是选择APPicon 一张1024X1024的软件图标,让ui作吧,我也不晓得软件的图标为啥要作这么大;

继续上传5张软件的截图,要挑选最重要的图片展现,大小是640x960,xcode上集成了截图功能,则是打开window-organizer视图窗口,点击本身的手机标签页下的screenshot,就能够截图了,尺寸正好,很方便的噢亲。

有常规的iphone4,iphone5,以及ipad各个add的入口,有的话就上传,没有的话就空着

因为上传时我忘记截图了,因此次页面就不能展现给你们了,不过很简单的一看就懂。

完过后检查无误,点击提交。

 

----------------------------------------------------------------------------------------------------------------------------------------

好了,走到这一步,基本上算是完成了一个app的建立,这里列举了你的skunumber,bundleID,appleID,随处可见的edit点击进入能够修改刚才提交的信息,看到红色圈住的状态了:prepare for upload 千万不要认为此时工做完成了,还差一步,若是此时你关闭了页面,准备最后一步,你会发现到时会出错的。我就由于这个绕了半天。

 

点击坐下的view Details进入后的页面回会是此软件的一个详细列表展现了软件的名称,描述,软件截图,技术联系人信息,等。看完无误后,必定要点击右下角(或右上角)的按钮(Ready to Upload Binary),只有点了这个按钮,才会改变当前status的状态为:waiting for upload。

【注意:若是是Ready for upload 状态,在xcode下打包提交应用,会有:No suitable application records were found.
Please make sure that you have set up a record for this application on iTunes Connect.的错误提示。】

 

此时,若是你的首页status变成了:waiting for upload 那么恭喜你,此步顺利经过,剩下最后了。(注意如上截图,点击continue,完成了网页的全部工做)。

 

 

 

4.xcode上操做:设置证书,build打包,提交项目。

 

打开xcode,首先确保你配置好了distribution证书,看我以下截图。

 

确保debug和release都是选中咱们申请好的distribution证书。到了次步骤,有的教程说建立一个新的codesigning identity 我也尝试建立了,不过这里不推荐新手建立,由于使用release照样能够打包,创新新的identity认为会让新手更晕菜。(如上截图)

 

 

 5. 上传二进制文件

为了上传程序,须要为程序建立一个archive。你只能在一台真实设备上建立一个archive。若是你在active scheme中选择了iOS Simulator,那么在Xcode的Product菜单中Archive选项是灰色不可选的。链接一台iOS设备到Mac机器上,而后在active scheme中选择这台设备,而后选择Xcode中Product菜单里面的Archive。

选中项目名称,设备改成ios Device(咱们不须要使用模拟器或真机来build打包),而后选择 edit Scheme(如上截图)

此界面顶部要肯定选中的是你的项目名称和iosDivice设备;左边栏选中Archive,右边的内容为以上视图。点击ok。(如上截图)

此时大功告成,在xcode-Product菜单选中build一下(快捷键command+B),而后再点击Archive。(如上截图)两个都成功的话,就继续下一步,不然请检查两个证书的配置。

 

 

 若是一切正常的话,如今你会得到一个archive,而且Xcode的Organizer会自动打开,并显示出刚刚生成的archive。在列表中选中archive,而后点击右边的“Distribute”按钮。在显示出来的画面中,选择“Submit to the iOS App Store”。而后输入你的iOS开发者帐号进行认证。接着选择Application Code Signing Identity

 

应用程序的二进制文件会上传到苹果的服务器中——在这个过程当中,你的程序一样须要被验证。若是在验证过程当中遇到了错误,程序的提交流程就会失败。验证处理很是有用,若是程序中有一些错误,苹果的 App Store评审团会告诉你具体缘由。

 

Archive成功后,就会在Organizer界面生成咱们的应用,进入后能够看到软件详细信息,这个identifier必定要和咱们第三步网页上的一致。

1111》点击右边的第一步1,验证此项目。(如上截图);(点击进入后输入apple开发者帐号和密码,下一步)

帐号经过后,会让你选中application 和distribution证书,依次选择,next(如上截图)。

验证经过后,会有如上界面展现,ok,恭喜你。

2222》接下来,咱们继续第二步,提交项目(Distribute)

若是你的项目是须要提交到AppStore,则选择第一个,next(如上截图)

若是是如上提示,那么恭喜你,咱们终于完成了这shit的流程,点击finish!!我不再想看到这些了,close Xcode。(如上截图)

 

 

----------------------------------------------------------------------------------------------------------------------------------------

咱们再次打开itunesconnect,登陆进入-会发现当前项目的status终于变了

Waiting for Review~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这不就是咱们最想要的结果麽!!!终于提交完成了,apple审核时间大约是1-2周,若是经过的话,就会按照咱们写的时间上架,若是未经过,会发email~~注意查收噢。

 

 

 

 

 

 

好了,接下来讲一下,如何在有IDP证书,开发者帐号的状况下,经过正规途径,导出ipa,安装在任意iphone手机中(亲测越狱手机)

 当咱们在上几步,打包build的时候,观看你项目的Products文件夹下,已经生成了真实的app,不过这个还不是咱们真正想要的.ipa文件。(如上截图)选中Product下的app,右键show in Finder,此时打开咱们的itunes,拖动软件到itunes下。

此时,咱们的软件就拖到了itunes中了,但是发现没有软件图标啊,不用怕,这是很正常的。右键软件,选择在Finder中显示(如上截图)

此时,眼前这个软件,就是咱们想要的ipa啦。我亲测安装到越狱后的手机,一点问题都没有(不用担忧证书的问题)【注意:越狱手机的版本必定要高于软件的版本要求】

目前尚未测试未越狱的手机,不过我想应该没法安装,由于apple的审查机制是很严格的,必须安装在有描述文件Provision的手机中内(这一点在真机部署测试时就已经体现出来了)

 

 

2014年5月30日插播

若是您都看到了这里,我真的佩服您能忍受我如此繁琐的措辞,由于时间缘由,写一篇博客并非很容易,因此有些语言或是排版组织的不是很好,1年过来了,如今我终于理解整个调试以及发布以及多人开发的流程,若是您如今也是朦胧状态,感受apple的机制好麻烦,或是在多人开发时遇到了:Valid signing identity not found 不妨建议您看我另外一篇文章,文章最后介绍了Certificate、App ID、Devices、Provisioning Profiles之间区别和联系,相信您看完后必定会恍然大悟!

Valid signing identity not found解决办法(原有IDP私钥丢失)及Certificate、App ID、Devices、Provisioning Profiles之间区别http://blog.csdn.net/mad1989/article/details/8699147

 

 

好了,谢谢各位看到这里,说的有些啰嗦,可是若是你按照此步骤,走完流程,就会悟出其原理。至少不是看到一教程,又看到另外一教程,都不同,干着急。

有什么问题能够给我留言,我看到后会尽可能帮助你们解决,一块儿学习,成长。

赠送传送门一个:http://www.cocoachina.com/special/market.html

 

 

20121109

mryang

 

 

 

 

 

2013年1月14日最新更新 :新版本提交审核

 

当咱们通过重重关卡,新项目终于在AppStore 上线以后,就会接踵而来遇到维护的问题,那么新版本提交,就没有这么复杂了,若是以上的教程你都理解了,新版本也就那么几个须要注意的地方,听我慢慢道来。

 

1,首先须要修改代码,就是说,你要有更新的内容,好比功能,好比bug(貌似是废话)

2,当肯定一切都ok以后,须要设置项目的version和build号,新版本

Version是显示对外的版本号,(itunesconect和Appstore用户能够看到),而build别人看不到,只有开发者本身才能看到,至关于内部版本号。【更新版本的时候,也要高于以前的build号】

 

3,登陆ituneconnect网站,在项目右侧,点击add new version ,弹出提示输入版本名称和更新内容,完过后点save。

4,在网站上详细审查一下新的版本名称和更新内容,还有是否有须要替换的截图,肯定无误后点右上角的ready to binary ,到此网站的设置完毕。接下来就是xcode提交新项目了。【此设置有一个须要注意的提示,以下截图】

让你选择是审核经过后自动更新到应用商店,或是本身手动控制更新,很人性化。

 

5,Xcode设置 codesign identity 为发布的证书,Divice选则iosDevice ,而后build 而后archive,跟上边第一次发布时同样。

6,打开organizer界面的archive标签页,检查无误后,先验证Validate后Distribute。

等待完毕后,若是没有什么问题,刷新itunescnnet网站吧,你新提交的项目状态变成了:Waiting For Review

 

 

20120114

 

 

**********************************打包上传时错误汇总《持续更新》**********************************

 

 

 

上传时出错:Application failed codesign verification.

 

它是说,你的签名不对,打包发布APP时,必定要使用Release模式,并把证书选择为本身的Distribution发布证书。

 

关于Validate Built Product设置YES或NO

有时打包遇到错误,网上都说,在Target设置----->build------>Validate Built Product选项去掉或设置为NO就能够了。从网上搜了一下Validate Built Product的含义,大概意思是说开启内置验证,好比apple规定的一些icon大小是57X57,而你的icon尺寸不是这个,就会致使发布失败。

 

 

 

上传时出错:code signing is required for product type Application in SDK iOS 6.1.

 

 

这个是说,debug的证书选择错误了,解决办法:

TARGETS --> Build Settings --> Code Signing --> Code Signing Identity设置为 iPhone Developer

这样就ok啦。

 

 

 

上传时警告:cApplication failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011).

 

 

这个警告,网上遇到的人不少,可是众说纷纭,貌似没有一个权威的解决办法,

首先要养成一个查阅官方文档的习惯:https://developer.apple.com/ios/manage/distribution/index.action

要明白真机调试和发布应用的几个步骤,不能连APP还没建立,就直接想用Xcode打包发布啊!还有要明白debug和release的做用和区别。

 

这个警告,个人理解是:

前提确认Xcode是近期的版本,工程的SDK也至少要是经常使用的。APPID正确,真机调试证书和Distribution证书都对应于当前Xcode设置。

首先检查你的Project的info是否正确了,还有就是Target设置是否正确..
而后注意不要使用模拟器build,要选择Device,去Edit scheme里查看archive的时候,是否是使用的release!
若是都不行就删除钥匙串里的相关文件,从新去ADP里申请再下载!

 

20130510

 

 

上传时出错:failed to get the task for process 624

This error happens when you have set Distribution Provisioning profile in code signing. Change it to Developer Provisioning Profile, then it will work. Worked for me for Xcode SDK 4.5.

把你的code sign由Distribution改为Developer.就这么简单.

 

上传时出错:CFbundleVersion

这个错误是说,咱们项目info.plist文件中的bundleVersion弄错了,这个属性须要int类型的数值,改为以下图所示就能够了。

 

20140111

相关文章
相关标签/搜索