美文网首页iOS技术资料账号程序员
iOS App打包上架超详细流程(手把手图文教你)

iOS App打包上架超详细流程(手把手图文教你)

作者: onlychenj | 来源:发表于2017-03-06 17:56 被阅读33477次

一、前言:

  • 作为一名iOS开发者,把辛辛苦苦开发出来的App上传到App Store是件必要的事。但是很多人还是不知道该怎么上传到App Store上
  • 下面就来详细讲解一下具体流程步骤。

二、准备:

  • 一个已付费的开发者账号(可分为):
  • 账号类型分为个人(Individual)
  • 公司(Company)
  • 企业(Enterprise)
  • 高校(University)四种类型
  • 每年资费分别为$99、$99、$299、免费。
  • 一个已经开发完成的项目。

三、检查:

  • 安装的Xcode必须为正式版,beta版本的Xcode不能上传项目到App Store。
  • 上传使用的 Mac 的 OS X系统必须也是正式版的,beta版本也不行。
  • 请确认你安装的Xcode是从App Store或者是开发者网站下载的
  • 因为非官方途径下载的Xcode可能带有XcodeGhost 病毒。如何检查?


    1.jpg

四、生成发布证书

1.打开开发者中心网址:https://developer.apple.com
2.点击:Account

2.png
3.输入账号和密码登录
3.png

4.点击:Certificates, Identifiers & Profiles

  • 专门生成证书,绑定Bundle Id,绑定device设备,生成描述文件的地方
4.png

5.点击Certificates生成证书

  • 选择iOS, tvOS, watchOS
  • 选择All
  • 点击右上角新添加证书
5.png

6.选择生产证书(选择App Store and Ad Hoc)

6.png
注意:一个开发者账号只能创建(1-2个开发(测试)证书,2-3个生产(发布)证书),如果你的App Store Ad Hoc 前面的按钮不能选择,则代表你的这个账号无法再创建新的生产证书了。
解决方法:

从共同使用这个账号的人电脑上生成.p12文件,导入自己的电脑。(尽量不要执行下面第2步)
如果你想生成的话,把现有的删除一个(建议删除时间比较靠前的)。注意:如果删除一个证书,那么正在使用这个证书的人将不能再使用了,除非重新生成,然后利用.p12重新导入自己的电脑里!
注意:如果你想删除证书,执行下面步骤,否则略过。
7.png 8.png 9.png 10.png 11.png

7.上传CSR文件去获取证书(CSR文件需要我们到本机钥匙串里去创建)

  • 在Launchpad的其他里面,点击钥匙串访问弹出如下界面
12.png 13.png
  • 工具栏选择钥匙串访问->证书助理->从证书颁发机构请求证书...
15.png
  • 将CSR文件保存到MAC磁盘的某个位置(这里我选择的是桌面,进行存储)
16.png 17.png 18.png
  • 然后回到浏览器,点击choose File..
19.png
  • 选择创建好的:CertificateSigningRequest.certSigningRequest 文件,点击选取
20.png
  • 点击Generate上传证书
21.png
  • 跳转到如下界面,点击 DownLoad 下载生成的证书(cer后缀的文件),然后点击Done,你创建的发布证书就会存储在帐号中。
22.png 23.png
注意:
这个证书只能下载一次。点击下载后,关闭页面后就不能再回到下载页面了。
如果不需要给别的电脑使用,则直接跳过下面附加项,跳转到第五步(绑定Bundle Identifier)

附加项:生成p12文件在其他电脑上使用这个发布证书

  • 双击安装证书后,打开钥匙串访问,选择安装的证书右键单击
24.png
注意:如果没有导出,可以把这个证书删除,然后重新双击下载的证书文件安装。
  • 导出证书


    25.png
  • 存储证书


    26.png
注意:存储的文件格式一定要是.p12
  • 设置密码
    可为证书设置密码,也可不设置密码;如果设置了密码,那么别人安装这个证书的时候就要输入密码,否则无法安装。
27.png
如果需要在其它电脑上也能发布App,那么就必须要安装这个发布证书。
28.png

五、创建App IDs和绑定你的App的Bundle Identifier

https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action

29.png
30.png
注意:
上传App使用的Bundle Identifier,不能使用占位符。
如果你的Bundle Identifier已经在网站上绑定了,如果你又修改了你工程里面这个Bundle Identifier的话,需要重新进入到开发者账号里面绑定。
31.png
  • 选择App中包含的服务,默认有两项
32.png
33.png
34.png
35.png

六、生成描述文件

  • 找到Provisioning Profiles ,点击All,然后点击右上角 + 号
36.png
  • 选择下面App Store这个描述文件,点击Continue
37.png
38.png
39.png
40.png 41.png
42.png

七、在App Store开辟空间

  • 回到Member Center,点击iTunes Connect
43.png
44.png
45.png
46.png
47.png
注意:如果都填好以后,可能会告诉你,你的App名称已经被占用,那你只能改名了!
48.png
49.png
50.png
51.png
52.png
53.png
54.png
55.png
56.png

八、在Xcode中打包工程

  • 找到你刚刚下载的发布证书(后缀为.cer)或者p12文件,和PP文件,双击,看起来没反应,但是他们已经加入到你的钥匙串中。

  • 在Xcode中选择iOS Device(这里不能选择模拟器),按照下图提示操作

57.png
58.png
59.png
注意:如果这里没有黄色叹号,代表你的配置没问题,如果有,那就是证书和描述文件不匹配,或者描述文件里刚才选的Bundle和现在的工程的Bundle Identifier不一致,去develop.apple.com 上找到你的描述文件在确认下绑定的bundle Identifier和你工程是不是一样的?
60.png
61.png
62.png
63.png
64.png
65.png
66.png
67.png
68.png
69.png
70.png 71.png
72.png
73.png
74.png
75.png
76.png
77.png
78.png 79.png
80.png
81.png
82.png 83.png
84.png
  • 等待APP的审核...

八、补充

  • 构建版本的方法有两种
  • 一种是使用 Xcode(上面已经介绍了)
  • 另一种就是使用一个叫 Application Loader 这个软件:
85.png
86.png
87.png
88.png
89.png
  • 个人觉得还是这个工具好用!

相关文章

网友评论

  • 8b7dda44f55c:你好,按照流程下来,验证ipa的时候发生错误,找不到embedded.mobileprovision这个配置文件,会是什么原因? xcode10.0
  • 听风_Lucas:写的挺不错,很详细:fist:
  • Aacmr:楼主,问一下,那个General里的Builld次数,不用每次都加吧?必须加吗?还是可以不加
    onlychenj:@Aacmr 发布上传到appstore上需要加,蒲公英上不用加
    Aacmr:再问一句,那个是打包上线的时候每次都必须加吧;发布蒲公英正式版本到蒲公英测试的时候可以不加吗?试过没,我试了一下,也可以下载。不过,以后发布版本到AppStore 的时候,我会按照你说的加的,谢谢:pray:你!
    onlychenj:@Aacmr 必须要加的
  • 星零_36cd:如果跨平台开发没有mac 可以参考在Windows上架ios APP的教程
    https://www.jianshu.com/p/7e0d450af145
  • 女生书摄:超级无敌详细,肯定花了不少时间整理。赞
  • benlue:很详细
  • 木头Lee:很详细,很完整,收藏了,感谢
  • 一笑wangx:我想问下有没有Application Loader安装包,可以给我发一个吗
  • coderChrisLee:写得很详细,棒! 断点那里最好是保证没有断点么 ?
    onlychenj:@coderChrisLee thanks 最好是没有
  • 00fdeda6b51a:No matching provisioning profiles found: No provisioning profiles matching an applicable signing identity were found.
    流程都跟足了,但是进到xcode准备打包signing certificate ios developer failed to create provisioning profile时候出现上述情况
    什么原因?
    更新上传是否一致流程?
  • 6f4c370e2ab5:麻烦问一个证书问题,在打包阶段,选择相应的provisioning profile后下面的status显示provisioning profile "xxxxxx" has ID “xxxxx”,which does not match the bundle ID “xxxxxx”。

    provisioning profile "xxxxxx" doesn't include signing certificate “xxxxxx”

    请问如何解决?
  • 3b5f59a4abf9:你好,楼主,新创建的apple id付费后可以上传app吗?有没有时间限制,谢谢!
  • Waisti:👏
  • 刘波_ecae:到你73那里就没法弄了,有公司的付费账号,但是下面继续不下去了...,账号无法选择啊,这是什么鬼!!!
  • c75aa3cf5dc3:你好你的手机号是多少了老师
    我的手机号是15548364888
    onlychenj:@运通支付周彬 18826130990😀
  • 码嘟嘟:这个是我看见过最详细的,已收藏
    onlychenj:@码嘟嘟 谢谢
  • 云画的跃光:xxx has conflicting provisioning settings. xxx is automatically signed, but code signing identity iPhone Developer:xx xxx (W9A663E5KQ) has been manually specified. Set the code signing identity value to "iPhone Developer" in the build settings editor, or switch to manual signing in the project editor.
    Code signing is required for product type 'Application' in SDK 'iOS 10.2'


    这是怎么了?


  • aa6ecf7ab32e:我这个项目将来要有内购 然后这第一版还需要怎么配置啊
  • 小码达:写的很详细,非常值得初学者看
  • 云画的跃光:你好,我想请问下,我upload successful,怎么在iTunes Connect 上面还是只有一个1.0(1),之前提交成功后被拒绝了,我改成1.0(2)提交,但是iTunes上没有新的建置版本
  • 爱尚代码的小伙:报错(iTunesSoftwareserviceAuthenticationErrorDomain error 434),Validate跟Upload App Store 有什么不同吗?我用前者会报错,后者成功。
  • 云画的跃光:Could not find a CFBundlePackageType within the Info.plist; or the package is missing an Info.plist.

    请问下这个是什么错误
    云画的跃光: @OnlyChenJ 已经解决了,谢谢你的文章😀
    onlychenj:@云画的跃光 这是配置问题,在网上搜索一下解决办法,比较容易解决
  • 云画的跃光:额。。。。。你弄的时候就没报过错吗?
  • 云画的跃光:No matching provisioning profiles found: No provisioning profiles matching an applicable signing identity were found.
  • ProfessorFan:很详细,棒棒哒
    onlychenj:@SuperD_MM 谢谢
  • 042a0e1be73f:问一下,公司现在的开发工具是Xcode7,影响打包上传吗?
    042a0e1be73f:@OnlyChenJ 谢谢!
    onlychenj:@iOSwift 不影响
  • yyc223:很详细,I like it!
    onlychenj:@yyc223 Thanks

本文标题:iOS App打包上架超详细流程(手把手图文教你)

本文链接:https://www.haomeiwen.com/subject/llsugttx.html