原文转自:

http://blog.sina.com.cn/s/blog_68661bd801019uzd.html

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



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

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

名字不是很重要,随意

     根据最近几年开发iOS的经验,如果是上传应用到APP Store必选第一个APP ID----explicit app id。如果是平常开发使用,用第二个更好,减少设置app id时选择太多的麻烦;当然申请的第一个在平常测试的话,只能对一个签名有效了。所以通常app id的选择就是你有多少个项目就创建多少个专用app id。然后建一个开发用的app id。

     第一个专用意思是说创建单一应用程序的appid,要用到:游戏中心,应用内购买、数据保护、和iCloud,推送,等一些对签名有精确操作的情况,一个explicit app id只能为单一程序使用,举个例子:com.csc.wahaha。

     如果上传选第二个也是可以的。使用*,*代表的是匹配任意字符,就是你的应用程序名称任意。Bundle ID怎么写,我给个例子:(com.csc.*)。苹果建议使用完整的app ID进行上传。因为如果你在以后想增加推送等其它功能,如果之前不是完整的app ID那么你需要重传软件。如果你选的是第一项,毕竟推送是苹果软件一大特色,用的也很多,那么你不能使用*,假设你的项目名叫wahaha,那么appid就应该是com.csc.wahaha。
   最后再强调一遍,上传应用一定要使用explicit格式的app id。
      项目名不要用中文,而新手可能会奇怪,手机桌面上软件名为什么是中文的呢,那个是在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遍还是这样的错误,那就考虑换个网络环境,或者找网管解除限制。

17.The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message.可能是Build Active Architecture Only的release设置有误。

appStore应用发布流程的更多相关文章

  1. APPStore 发布流程及证书申请

    最新的 iOS 申请证书与发布流程(2016.7) 今天刚好客户定制的APP需要上架,也提供了新的开发者账号,所以就顺带把申请证书与发布流程写一遍. 证书是什么? 上面这个就是我们申请好证书后,下载到 ...

  2. 真机测试以及appstore发布流程

    一.添加真机测试流程:http://jingyan.baidu.com/article/48b558e33b96a27f38c09aa4.html 二.app发布流程:http://jingyan.b ...

  3. ios 证书申请和发布流程

    证书是什么? 上面这个就是我们申请好证书后,下载到本地的.cer文件,也就是常说的开发证书与发布证书的样式.这.cer文件格式的证书是让开发者使用的设备(也就是你的Mac)有真机调试,发布APP的权限 ...

  4. iOS-appStore发布流程

    appStore上传苹果应用程序软件发布流程http://blog.sina.com.cn/s/blog_68661bd801019uzd.html

  5. App开发到App Store上架,发布流程。

     http://blog.csdn.net/wojsg001/article/details/12005887 App开发到App Store上架,发布流程. 分类: IOS2013-09-25 11 ...

  6. [Mac]ios应用发布流程

    准备: 苹果开发者账号 发布: Xcode-product-clean-Archive,将应用上传到https://itunesconnect.apple.com,创建一个新的app版本,填写app相 ...

  7. 最新的 iOS 申请证书与发布流程(2016.12)

    今天刚好客户定制的APP需要上架,也提供了新的开发者账号,所以就顺带把申请证书与发布流程写一遍. 证书是什么? 上面这个就是我们申请好证书后,下载到本地的.cer文件,也就是常说的开发证书与发布证书的 ...

  8. 最新的 iOS 申请证书与发布流程

    申请流程. 1. 申请钥匙串文件 进入  (Launchpad),找到   (我的是在其他里面找到的),运行后再左上角 存储在桌面就好了,然后就完成退出钥匙串工具就可以了. 2.申请开发证书,发布证书 ...

  9. IOS 应用发布流程

    发布流程总结成三个步骤: iOS应用发布流程(一)------相关app证书的申请.下载以及安装 http://blog.csdn.net/ys371277787/article/details/50 ...

随机推荐

  1. oracle 数据库 if...elsif...语句

    CREATE OR REPLACE FUNCTION "UFN_GETIDS" (    OPEKIND   IN   VARCHAR2,-- 查询类型    PARAMS IN ...

  2. DTO学习系列之AutoMapper(三)

    本篇目录: Custom Type Converters-自定义类型转换器 Custom Value Resolvers-自定义值解析器 Null Substitution-空值替换 Containe ...

  3. 11 java 反射机制

    Java反射机制的适用场景及其利与弊: http://blog.csdn.net/zolalad/article/details/29370565 http://my.oschina.net/u/10 ...

  4. window.open() | close()方法

    Window对象的open()方法可以打开一个新的浏览器窗口(或标签页),window.open()载入指定的URL到新的或已存在的窗口中,返回代表那个窗口的window对象,它有4个可选的参数 1. ...

  5. Java系列--第二篇 基于Maven的Android开发HelloAndroidWorld

    曾经写过一篇Android环境配置的随笔,个人感觉特繁琐,既然有Maven,何不尝试用用Maven呢,经网上搜索这篇文章但不限于这些,而做了一个基于Maven的Android版的Hello Andro ...

  6. SpringSource Tools Suite 字体偏小问题

    参照了Eclipse小技巧收录http://liuzidong.iteye.com/blog/1320094 发现没有找到相应文件,只有搜索了,一个一个地找,总算找到了,修改方法还是一样,只是路径,文 ...

  7. cobbler之ks文件示例

    #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration,关闭防火墙 firewall --disabl ...

  8. awk多个数组的使用

    #!/bin/bash awk 'BEGIN{printf "%-60s %-10s %-10s %-10s\n","url","count" ...

  9. R语言的数据结构

    首先声明,R语言对大小写敏感. 一.向量 vector类型可以存储数字.字符和逻辑类型.构建函数为C(): > a <- c(1,2,3,4) > b <- c('dau',' ...

  10. 什么是REST架构 - z

    什么是REST架构 - z   REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌.随着 REST架构成为主流技术 ...