xcode APP 打包以及提交itc审核详细流程

最近一个月我一直再打包,总结了一些东西,有兴趣的可以看看哦,欢迎提出你的意见和建议,请多多指导。



xcode APP 打包以及提交apple审核详细流程

环境部署

开发环境:xcode建议是最新版本

iphonesdk7以上

开发机器:macBookPro

真机部署测试:apple个人开发者ID

1.1注意

无论是ios7或是现在的xcode7.2,虽然有些样式改变了,但是实际上的流程还是这个样子,所以供您参考,少走弯路,还是有一定的作用

1.2向导

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

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

1.3预先准备

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

 

Step 1: App ID(应用ID
App ID是识别不同应用程序的唯一标示符。每个app都需要一个App ID或者app标识。目前有两种类型的App标识:一个是精确的App IDexplicit App ID),一个是通配符App IDwildcard App ID)。使用通配符的App ID可以用来构建和安装多个程序。尽管通配符App ID非常方便,但是一个精确的App ID也是需要的,尤其是当App使用iCloud 或者使用其他iOS功能的时候,比如Game CenterPush Notifications或者IAP

 

如果你不确定什么样的App ID适合你的项目,我推荐你读下苹果关于这一主题的文档:Technical Note QA1713https://developer.apple.com/library/ios/qa/qa1713/_index.html

 

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

 

如果对此不熟悉,我建议你读下苹果关于signing certificatesprovisioningprofiles的详细指导。(https://developer.apple.com/legacy/library/documentation/IDEs/Conceptual/AppDistributionGuideXcode4/CodeSigningYourApps/CodeSigningYourApps.html

 

Step 3: Provisioning Profile(配置文件)
一旦你创建了App IDdistribution 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 IDdistribution certificate provisioning profile已经完成,是时候配置Xcodetargetbuild settings了。在Xcode Project Navigatortargets列表中选择一个target,打开顶部的Build Settings选项,然后更新一下Code Signing来跟之前创建的distributionprovisioning profile相匹配。最近添加的provisioning profiles有时候不会立马就在build settingsCode Signing中看到,重启一下Xcode就可以解决这个问题。

配置TargetBuild Settings

Step 5: DeploymentTarget(部署目标)

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

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

(2) 对于一款新app,我经常会把deployment target设置为最近发布的系统版本。因为新iOS版本发布后,渗透率的增长速度是令人难以置信的。很多人认为提高deployment target会失去大部分市场,这个说法并不准确,比如iOS 6iOS 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 TouchiPad/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开发者账号登陆,点击右边的我的App”,点击左上角的“+”,选择新建App”,然后完成表格。

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

点击进入

左上角,添加一个APP,如果你的开发账号之前已经提交过app,下面就会列出来。

 

第一个页面,选择平台,填写名称(您的appappstore显示的名称),主要语言(一般选项简体中文:Simplified Chinese),选择套餐ID,,SKU。具体的填写有提示说明,请自行参考

SKU Number是一个用来识别app的特殊字符串。我经常使用appbundle identifier。最下边是appBundle ID,你可以从下来菜单中选择通配符App ID或者准确的App ID

填写完整信息之后点击“创建”,之后跳转如下界面:

 

 

接下来填写App信息,这个具体操作有提示信息,我就不一一介绍了。

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

 

点击价格与销售范围,进入如下界面:

点击“准备提交”,进入如下界面:

 

以上填写信息有软件的内容描述,关键字,技术支持url,以及下面的技术负责人的名字,姓,email,手机号码,这些都很简单,你们都懂的。

接下来是选择App icon 一张1024X1024的软件图标,让ui做吧,这个有要求说明,不可以有图层出现,因为之前我出现过这个错误提示;

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

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

完事后检查无误,点击提交。最好每一步都惦记一下存储按钮,以防刚刚的东西丢失,或者由于网卡住,要重新加载,就要一切重新再来了。

好了,走到这一步,基本上算是完成了一个app的创建,这里列举了你的skunumberbundleIDappleID如果都填写完毕并且检查后,点击提交以供审核,这时候状态就会变成正在等待审核。

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

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

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

 5. 上传二进制文件

为了上传程序,需要为程序创建一个archive。你只能在一台真实设备上创建一个archive。如果你在active scheme中选择了iOS Simulator,那么在XcodeProduct菜单中Archive选项是灰色不可选的。连接一台iOS设备到Mac机器上,然后在active scheme中选择这台设备,然后选择XcodeProduct菜单里面的Archive

选中项目名称,设备改为iosDevice(我们不需要使用模拟器或真机来build打包),然后选择 editScheme(如上截图)

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

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

 

 如果一切正常的话,现在你会获得一个archive,并且XcodeOrganizer会自动打开,并显示出刚刚生成的archive。在列表中选中archive,然后点击右边的Distribute按钮。在显示出来的画面中,选择Submit to theiOS App Store。然后输入你的iOS开发者账号进行认证。接着选择Application Code Signing Identity

 

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

Archive成功后,就会在Organizer界面生成我们的应用,进入后可以看到软件详细信息,这个identifier一定要和我们第三步网页上的一致。(Xcode最好为最新版本,否则上传的ipa要进行很久的审核,那个包总是正在处理,建议用Application Loader 上传ipa包到iTunesConnect,那个ipa包审核时间最长一天,关于这方面我咨询过app store的技术支持人员)

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

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

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

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

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

 

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

 

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

2,当确定一切都ok之后,需要设置项目的versionbuild号,新版本

Version是显示对外的版本号,(itunesconectAppstore用户可以看到),而build别人看不到,只有开发者自己才能看到,相当于内部版本号。【更新版本的时候,也要高于之前的build号】

 

3,登录iTunesConnect网站,在项目右侧,点击“+版本或平台”,弹出提示输入版本名称和更新内容,完事后点save

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

5,打开organizer界面的archive标签页,检查无误后,先验证ValidateDistribute

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

打包上传有可能出现的问题:

上传时出错:Applicationfailed codesign verification.

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

 

关于ValidateBuilt Product设置YESNO

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

 

 

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

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

TARGETS --> BuildSettings --> Code Signing --> Code Signing Identity设置为iPhone Developer

这样就ok啦。

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

 

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

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

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

这个警告,我的理解是:

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

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

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

This error happens when youhave set Distribution Provisioning profile in code signing. Change it toDeveloper Provisioning Profile, then it will work. Worked for me for Xcode SDK4.5.

把你的codesignDistribution改成Developer.就这么简单.

上传时出错:CFbundleVersion

这个错误是说,我们项目info.plist文件中的bundleVersion弄错了,这个属性需要int类型的数值,改成如下图所示就可以了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在iOS上使用Xcode进行离线打包,需要遵循以下步骤: 1. 确保你已经安装了Xcode并拥有一个有效的开发者账号。 2. 打开Xcode并选择 "File" -> "New" -> "Project"。 3. 选择 "iOS" -> "Application" -> "Single View App",并点击 "Next"。 4. 输入项目名称和其他信息,然后点击 "Next"。 5. 选择一个位置来保存你的项目文件,然后点击 "Create"。 6. 在左侧导航栏中选择你的项目,并在 "General" 选项卡下找到 "Identity" 部分。 7. 点击 "Team" 下拉菜单并选择你的开发者账号。 8. 关闭Xcode并在终端中打开你的项目文件夹。 9. 运行以下命令来创建一个离线打包的IPA文件: ``` xcodebuild clean archive -scheme <YourSchemeName> -archivePath <YourArchivePath.xcarchive> CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ``` 其中,`<YourSchemeName>` 是你项目中的 scheme 名称,`<YourArchivePath.xcarchive>` 是你想要保存的归档文件的路径。 10. 运行以下命令来导出IPA文件: ``` xcodebuild -exportArchive -archivePath <YourArchivePath.xcarchive> -exportOptionsPlist <YourExportOptions.plist> -exportPath <YourIPAPath.ipa> ``` 其中,`<YourArchivePath.xcarchive>` 是你刚才创建的归档文件的路径,`<YourExportOptions.plist>` 是一个导出选项的配置文件,`<YourIPAPath.ipa>` 是你想要保存的IPA文件的路径。 11. 完成后,你应该可以在 `<YourIPAPath.ipa>` 路径下找到你的IPA文件。 请注意,此方法需要你已经有一个有效的开发者账号,并且你需要使用终端来执行命令。此外,此方法可能存在不稳定性和错误,因此请谨慎使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值