首先确定帐号是否能发布, 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安装这一步是不需要了。

说明你证书安装,配置文件都没问题了


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遍还是这样的错误,那就考虑换个网络环境,或者找网管解除限制。

appStore上传苹果应用程序软件发布的更多相关文章

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

    如有疑问,或者需要人帮忙,可以到QQ群:460325065首先确定帐号是否能发布, https://developer.apple.com/account,如果你打开Provisioning Port ...

  2. 【转】appStore上传苹果应用程序软件发布流程

    转载地址:http://blog.sina.com.cn/s/blog_68661bd801019uzd.html 首先确定帐号是否能发布, https://developer.apple.com/a ...

  3. appStore上传苹果应用程序软件发布流程(之前都是同事发,复制一份备用)

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

  4. 教你一步一步部署.net免费空间OpenShift系列之三------上传ASP.net程序

    接上回书,创建应用后,我们如何将自己的ASP.Net部署到应用空间呢,这里用WinSCP的SFTP协议进行上传和下载 上传ASP.net程序 下载WinSCP,并打开PuTTYGen 点击Genera ...

  5. AppStore上传条例

    1. 条款和条件1.1 为App Store开发程序,开发者必须遵守 Program License Agreement (PLA).人机交互指南(HIG)以及开发者和苹果签订的任何协议和合同.以下规 ...

  6. Microsoft Visual Studio 开发的C++程序软件发布相关事宜

    VS2005/VS2008软件发布: Debug版本: 非MFC程序: 编译选项mdd: 仅依赖C++库和C运行时库,需要到VS2005/VS2008下安装目录VC/redist/Debug_NonR ...

  7. HTML5文件上传插件 Huploadify V2.1发布

    月初发布了HUploadify2.0版本,增加了文件的断点续传功能,得到了不少朋友的好评.本着按照Uploadify原样复制的原则,本次在一些朋友的建议中采纳了几点,做了一次较小的改动,定为2.1版本 ...

  8. 命令行下上传文件到iOS软件 专业文件管理/gplayer

    U盘丢了, 就拿手机当U盘用用先. 一般情况下软件打开上传功能, 在浏览器里上传即可. 可是偏偏我的电影放在了 树莓派里面(搭建了一个SMB), 直接浏览器的话,会多占用些带宽, 我的破路由器.... ...

  9. 关于AppStore上传相关问题

    1.电脑本地证书CertificateSigningRequest.certSigningRequest一定要一致(包括开发者证书,尤其是发布证书要一致,否则无法正常上传),此类错误Xcode一般会提 ...

随机推荐

  1. Android 连接.net WebService 工具类代码

    安卓代码: import android.os.Handler;import android.os.Message; import org.ksoap2.SoapEnvelope;import org ...

  2. 配置tmux在机器重启后自动恢复tmux工作现场,告别重启恐惧症

    1. 问题出现的背景 通过ssh远程登录服务器在上面工作,有时候很有可能由于网络断开而导致ssh链接断开,或者下班后想继续在家登录到服务器继续工作.这些情况都需要服务器保持我们的工作环境,比如,vim ...

  3. [GDOI2014]采集资源

    题目概述 题目描述 魔兽争霸3中,战略资源的采集通过使用农民.苦工.小精灵以及寺僧来进行. 在魔兽争霸4的开发中,玻璃渣觉得这种模式太过单一,于是他们想添加更多的单位来使采集的模式更加丰富. 在新的模 ...

  4. 部署logstash节点

    .部署Logstash节点 1.查看系统环境: [root@Logstash ~]# hostname Logstash [root@Logstash ~]# cat /etc/redhat-rele ...

  5. linux实操_定时任务调度

    crond任务调度 语法:crontab [选项] -e 编辑crontab定时任务 -i 查询crontab任务 -r 删除当前用户所有的crontab任务 service crond restar ...

  6. redis过期机制及排行榜

    redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略.redis 提供 6种数据淘汰策略:  volatile-lru:从已设置过期时间的数据集(server.db[i].expire ...

  7. Node.js Websocket 区分不同的用户

    实现ws://serverIP:port/:param1/:param2 .通过param1,param2来管理不同的ws回话,以便实现群发和指定用户的消息推送 npm install ws --sa ...

  8. webpack安装,常见问题和基本插件使用

    一:webpack认识 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关 ...

  9. IntelliJ IDEA 配置JDK

    一.JDK下载 首先要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 点击 ...

  10. jQuery于js的区别和联系

    一.什么是jQuery jQuery 是 js 的一个库,封装了我们开发过程中常用的一些功能,方便我们调用,提高开发效率. js库是把我们常用的功能放到一个单独的文件中,我们用的时候,直接引用到页面里 ...