appStore上传苹果应用程序软件发布流程

首先确定帐号是否能发布, https://developer.apple.com/account,如果你打开Provisioning Portal,然后点击DisTribution看到的是下图中那样,再考虑按下面的方法弄

首先确定帐号是否能发布, https://developer.apple.com/account如果你打开Provisioning Portal,然后点击DisTribution看到的是下图中那样,再考虑按下面的方法弄





(1)图中加号是灰色,点击图中的加号,没有反应,说明你的帐号不能发布,找你们老大要帐号,正常情况是加号是黑色,点击会弹出一个创建证书界面。
 (2) 没有发布证书,如果有,是图中那样,如果你没有或者状态不对,则你需要新建证书,下面的内容会一步步介绍。
(3)发布还需要用到Xcode,就是需要一个苹果系统,最好要有源代码。(因为用ipa上传更复杂,可能有的公司是外包买的代码,然后自己公司上传,对一个新手来说,第一次就用ipa上传可能会崩溃。)


1.进入开发者中心,进入到iOS Provisioning Portal界面,然后进入app ids界面创建一个专为发布软件用的appid,并为其创建证书



名字不是很重要,随意

      第一个选项意思是说创建单一应用程序的appid,要用到:游戏中心,应用内购买、数据保护、和iCloud,推送,等一些特殊的情况,或者你心情不爽非要创建一个为单一程序使用的appid,就选这个,不能使用*。
     第二个项是我觉得是比较普遍的,因为大多数应用都是企业应用,大部分都有自己的网站,能弄到网站上购买的,尽量到网站上购买,因为在手机上,苹果审核的时候会问,对这个敏感,说不好就涉及分钱的问题。
     如果你无法确认选哪一种,那就简单的两个问题,(1)你的应用是不是游戏(2)你的应用是不是要付款,类似淘宝,京东购物。(3)有没有用到推送。  如果这几个都没有涉及到,那么就选第二个吧。使用*,*代表的是匹配任意字符,就是你的应用程序名称任意。Bundle ID怎么写,我给个例子:(com.csc.*)。苹果建议使用完整的app ID进行上传。因为如果你在以后想增加推送等其它功能,如果之前不是完整的app ID那么你需要重传软件。如果你选的是第一项,毕竟推送是苹果软件一大特色,用的也很多,那么你不能使用*,假设你的项目名叫wahaha,那么appid就应该是com.csc.wahaha。
      项目名不要用中文,而新手可能会奇怪,手机桌面上软件名为什么是中文的呢,那个是在plist里面设置的。



     上面图上的内容,如果是第二种appid,那么不用看,如果是第一种,则用到什么就选什么。然后点击继续。

创建完appid后再添加一个证书,发布证书,必须是管理员身份,组员 身份没有Distribution权限,无法发布。
      新手可能有疑问,Certificates与Provisioning Profiles的功能和区别是什么?Certificates就是证书,Provisioning Profiles是配置。证书是用于钥匙串的,而配置文件是用于xcode的。应该先弄一个证书,再弄配置文件。最终这两个都是必须的。
      选择Certificates,点击加号,选择App Store and Ad Hoc,点击继续,知道看见下图
然后打开钥匙串,



然后点击电脑状态栏上的钥匙串,然后从颁发机构请求证书





按照上面的操作,填上你帐号邮箱地址,名称,然后点击继续,然后存储到磁盘,保存到桌面

然后点击choose Files,选择刚才那个CertificateSigningRequest.certSigningRequest创建的那个证书,然后就创建完成,然后下载发布证书,安装到钥匙串里。

然后在弄一个Provisioning Profiles文件,同样的办法,点击加号,选择Appstore,然后选择你创建的那个appid,包含创建的证书,然后为证书取个名字。等到看到Your provisioning profile is ready.然后下载配置文件,然后双击打开安装到xcode中。在最新版本的xcode安装这一步是不需要了。在4.X版本中会看到如下图:





看到这样的时候,说明你证书安装,配置文件都没问题了

2,发布应用时需要选择iOS Device。



    对于用较低版本xcode的兄弟,可能有一些额外操作。(这个图片随着xcode版本的更新,已经失效,意思就是新版的XCODE界面与图片不符,操作方式为下图,有个朋友用最新的版本就不需要做,当然如果跟着下面的做了也不会出错)





    将内容改成Distribution






3.配置TARGETS里面的Summary的Bundle  Identifier,
  TARGETS里面的Build Settings的Code Signing Identity,
  PROJECT里面的Build Settings的Code Signing Identity这三部分匹配,(在填写开发者网站时的 
Bundle Id时也要匹配。具体怎么算匹配在文章最下面已经补充,如果在出错后可以看下,这里的话还是按照顺序一步一步做),然后进入Product菜单->Archive,然后会自动弹出Organizer,Archive包是用来上传到AppStore的
 
之前说的证书匹配什么的说的比较复杂,其实如果按步骤一步步来很简单







这里选择你创建的发布证书就OK了




Applications must be ready for upload on iTunes Connect before they can be validated or submitted from within Xcode. 

 


4.如果看到的是上面的界面,那是正常的,因为你还没告诉苹果公司你要上传你的软件,苹果公司没准备好接收你的软件,那你接下来的是登陆开发者中心,打开
https://developer.apple.com/account/登陆IOS Dev Center的iTunes Connect,然后点击Manage Your Applications,然后点击Add New App   ,(第一次发布的时候有一个界面选择公司和语言,我是随便写的,好像没什么区别)然后开始配那些项,这个没什么难度,一看就懂,按照要求写上去就行










10月17日补充,由于ios6的推出,苹果在开发者网站上有了一些变动,在填写信息的时候有个朋友纠结了3天也没弄好,最后直接Q我,我就直接帮他做了。我就把如何填写的信息完整的发出来吧


可能在这里填写的时候,要注意一下,如果之前appid如果不是用*,可能看不到以下界面,这个要去重新新建一个appid,然后更新发布证书,指向那个appid,如果你看到的是下面的界面,那么就不需要新建了,然后在Bundle ID Suffix这一栏写上你的应用程序名,这一栏非常重要,与你Xcode上的程序名要一致才能上传



这个界面没什么要填的,就是选择价格,一般都是免费软件,收费的同学一般都有“管”级别的同学在弄,一般不会看这个,呵呵。选择完就继续。

这个部分填写的时候没什么需要注意的地方,当然越准确越好,但是就上传而言,不会有太过严肃的审核,可能有时候要选择primary category,一般都是business,其他视自己需要和实际情况。
这个部分一般全部选none就好,如果你的程序确实有涉及一些不健康的或者暴力的,那就需要仔细看看了

新增了一个内容,是鼓励为小孩开发软件,如果软件是针对小孩子设计的,就选上,在分类和搜索时会优先搜索到。





这个部分将会在软件通过后显示在appstore界面的正文部分,虽然在上传的时候审核的不强,但是还是要认真填写,其他带选择性填写的,如果有的话,最好还是填上去。



这个界面是ios6之后新加的,之前上传的时候是没有的,那些数据怎么填写的呢,邮箱就是你的登陆邮箱,名称就是你填写的用户名,我的是

你也可以点击Edit Profile查看你填写的一些信息,你也可以看到



suntiezheng不是我的名字,哈,是我们老大的。


接下来的,你要准备一个在苹果商店显示的图标,当然是炫一点好,是用户的第一印象,然后就是要有截图,按照标准,点击旁边的问号查看有什么要求,至少要一张截图,如果你要兼容iphone 5  ,那也要iphone5的截图。
(这里点开上图中问号,会看到苹果要求你上传什么格式,大小的图片,而不是只能jpg,这个才是最标准的要求)
5如果抖按照要求顺利提交,你的邮箱会收到苹果公司的一封邮件,告诉你现在是Prepare for Upload这个状态,然后在点击Ready to Upload Binary之后,状态会变成Waiting For Upload,到现在就可以回到Xcode上传软件了,就是进入Product菜单->Archive,







6.看到这个界面就可以松一口气了,这是苹果公司告诉你你可以上传了然后点击Finish,然后回到Organizer-Archives界面,选择Distribution按钮,会有如下界面




然后点Next,然后继续点,直到上传


  

到这个时候你要做的就是等待了,当上传完成的时候你会收到邮件,通知你Waiting For Review。也就是大功告成。
可能第一次发布的时候有各种困惑,
1:到底怎么样算配置好各种参数?其实很简单,只要把证书设置为专门发布的证书即可,没有网上说的那么恐怖,之前我被误导了
2.我在弄的时候有No  identities  are available for signing 的错误,并且在target的bilding setting里面选不上证书,就是灰色的。最后的原因是:在创建app id时第二个项Bundle Identifier (App ID Suffix)没有设置好

3.一定要有一个发布证书



有一个朋友出现这个问题,是发布证书不能识别,对于这个问题,分三步解决,第一步,点击那个Organizer界面最下面的Refresh,要是依然是黄色感叹号,则第二步,右键删除不能识别的证书,再到苹果开发者网站下载那个发布证书,如果这样做后依然是黄色感叹号,那第三步,再苹果开发者网站移除掉那个发布证书,重新来,移除后,打开钥匙串,请求一个证书,然后提交,刷新一下界面然后重新下载,安装。如果还有问题,那就操作步骤有问题了。每一个步骤都不能错,这就是苹果的变态处


4.可能有各种问题

  • You must provide a last name.
  • You must upload at least one screenshot.
  • You must provide an email address in a valid format (for example, support@example.com).
  • You must provide a phone number in a valid format (for example, +1 123 456 7890).
  • You must upload a large app icon.
  • You must select a primary category for your app.
  • App Description must be at least 10 characters in length.
  • You must provide a first name.

  • 对于这个问题是,是在填写Last Name时没有与你帐号的用户名相对应的结果

  • 这个问题是因为你的appid与

    不对应。假如你设置的appid是com.csc.*,那么你的Bundle Identifier应该是com.csc.calinks。calinks是我的项目名,是灰色的,无需自己修改,自己修改的只是前两个字段。类似的问题也有你在苹果开发者网站上填写Bundle ID Suffix与你的项目名不同造成的。


  • 这个也有可能你选择的发布证书与这两者不对应,创建发布证书在选择appid时一定要看清了。这个就是前面说的3者要相对应。简单的说就是最好按照步骤一步步来。

5.有个朋友问我,“我准备了这些图片,该如何使用呢”

可能这个朋友同时看多个文档,但我之前没有明确提出来在哪个地方传这些图片,可能那个朋友就迷惑了,其实我有提到的,红色的第5点的上面,用括号补充出来了

6.有个朋友问:“那个所谓的把程序打包啥的是不是那个什么操作Archive的过程?”这个问题,说的很对,我自己是这么认识的。根本就不存在打包的概念,不象安桌生成一个APK,拿到手机上面就直接装,当然越狱的是可以。如果你把你的程序用itunes生成一个ipa出来,我觉得这个过程才叫打包。而网上有些朋友说的打包,应该就是提交过程,所以根本不需要理会打包什么

7.有个朋友问“在itunes connect上面,我想上传一个免费的应用程序,我难道只需要操作


 

这个吗?不需要额外的提交什么合约之类的东东,吗?”

这个问题,是没必要担心的,因为在申请开发者帐号的,它所要求的信息基本都已经录入了,99美元你也付了,你有权利上传你的程序,无需其他任何额外要求。当然通不通的过,那是审核阶段的事情了。审核标准网上也有。

8.有朋友问,appid是不是一定要按照那个格式?苹果公司推荐使用完整的APPID作为你发布的软件的appid,不用使用带有*的通配符,每一个软件发布都对应一个唯一的appid,因为如果你没用完整的appid,假如后续需要升级要用到完整的,而如果相同的appid被占用,那么你得重新上传

9.最近有朋友遇到了不能安装证书的问题,而且不止一个人,其实是因为苹果界面的变动,有一个是用于管理上传到app store的版本,有一个是用于创建开发者的证书。要看清选项

10.有人问可以不可以用ipa直接发布软件到APPStore?这个是可以的,但最好还是先弄清楚正常的流程之后再弄ipa上传。ipa上传也是很有意义的事情,特别在大公司分工合作中,产品不归开发人员管理。上传的人可能不能看到代码。

11.企业账号的问题?如果用企业账号,是可以直接装到用户的手机,无需经过苹果的APPStore下载。确实挺方便。网上说适合500人以上的大公司,我感觉不是,无论大小公司,如果想让客户体验到最新的软件,那么企业帐号绝对物超所值。而且无需知道安装者的设备号,无需越狱,所有的手机都可以装。如何申请企业帐号以及企业帐号发布APP流程,推荐几个文章:

申请苹果开发者企业账号I

iOS 企业证书发布app 流程

有一个朋友说在弄的时候所有的步骤都没有问题,但是在手机里面打开链接遇到“无法到达”的情况。itms- services:///?action=download-manifest&url=http://www.XXX.com /mytest.ipa,原因是服务器不识别那两个文件类型,.plist和.ipa,后台服务器需要添加文件对这两种类型的支持。在mime里面添加。

我一 同学写的-ios企业开发者帐号使用

12.如何为AppID续费?续费流程链接

13.企业账号的神秘面纱,任何未越狱手机在wifi模式下都能安装。用iphone手机QQ或者其它软件扫描如下图片,别用微信,微信不支持itms-services协议,点击安装抢先版

或者直接用safari打开

itms-services://?action=download-manifest&url=http://www.calinks.com.cn/buick/dx/Buickhousekeeper.plist


不过我觉得企业账号很废。299美元没必要,如果有一些特殊情况,软件更新太频繁,又不想通过苹果的审核,或者软件必须用到私有接口却要给未越狱用户安装,或者你的大多数用户都不是通过AppStore下载,根据你的情况,那么你可以考虑下299美元的账号。一般情况下,还是用99美元的好。

问:这种模式下载,是不是一定要在appstore有才行?答,不是。只要有299账号,不需要在App Store上线,也上不了。

14.有人问,不管是开发,还是发布,appid都是同一个对不对?这个问题显然不是,开发的appid和发布的appid没有要求一定要同一个,你可以开发的时候是一个appid,发布的时候另外一个,完全没任何关联。推送证书跟开发证书和发布证书也没有半毛钱的关系,唯一共同点是他们都是钥匙串里面。发布软件不需要推送证书也能发布,如果你要加上推送功能,那么才需要推送证书。不要被上面所有的要一致而迷惑,上面是指发布这一个操作内的所有的appid,证书要一致。而开发而发布是两个不同的动作。就像抬手与放脚是两个不同动作,类似于手指跟脚趾的关系。没有任何关系,有关系的是手臂与手指,腿与脚的内部关系。

15.提交时提示错误This Bundle is invalid.New apps and app updates submitted to the App Store must be built with public。原因在于你用的xcode版本或者sdk的版本低,先确认你的版本是否为最新版或者是较新版。这个问题是因为从2014年2月1日开始所有新提交的app和更新,都要用xcode5和IOS7。用xcode4.6是不行的。这个过一段时间苹果就会将提交应用的版本提高,所以最好的办法就是保持xcode最新。

16.提示The session's status is Failed and the error description is failed to open ssh session

如果出现很多这样的错误,原因在于你所在的网络,譬如大学学校的网络,房东的网络,或者公司网络限制了上传跟下载。这种问题的解决办法你可以先试着重传,试个5遍还是这样的错误,那就考虑换个网络环境,或者找网管解除限制。