likes
comments
collection
share

最新上架App Store 全流程

作者站长头像
站长
· 阅读数 2

前言

过完年回来app上架到App Store,虽然之前上架过,还是遇到不少坑,特别是配置证书的时候,还好是上架是一次性通过,整理一份详细图文详解。项目是flutter项目上架到App Store,与原始的iOS上架还是有些差别。

环境

macOS 10.15.7

Flutter 2.0.6

Xcode Version 12.4

vscode

Apple Developer 配置

developer.apple.com 点击“Account”栏目

最新上架App Store 全流程

如果该App需要多人协作开发,请进入People进入人员编辑。注意负责上架AppStore的人员需要有管理级别的权限

然后点击 Certificates, Identifiers & Profiles 图标

最新上架App Store 全流程

1. Certificates:证书

Certificates作用是为Mac电脑提供开发能力,具有Certificates的Mac电脑能够真机调试、打包、上架APP到app store。

最新上架App Store 全流程

Certificates有两种环境:开发(Development)环境生产(Distribution)环境。 Certificates还有两种类型:SoftwareServices

可以理解为:

(1).开发环境(Development):直接用Xcode调试debug就属于开发环境,在模拟器上debug是不需要Certificates的。但是在真机上调试运行就需要Certificates开发证书,发布到APP Store 需要 Certificates 生产证书。 (2).生产环境(Distribution):上架app store,打包生成ipa包等都属于生产环境。只要是通过Archive生成都都是属于生产环境。 (3). Software: 使mac具有相应的开发和发布能力,一台Mac只需要建立一套即可。 (4). Services: Apple提供的额外服务,最常见的就是消息推送服务,会针对不同的App建立不同的Services Certificates,毕竟每个app需要的Services不同。

针对Software部分需要注意: Certificates是对Mac电脑有效的,是根据Mac的CSR请求证书创建的,而不是对app,所以Certificates的开发(Development)证书和发布(Distribution)证书是有数量限制的。超过数量就不能再创建了,除非删除已有的证书。 只要你这个Mac电脑拥有了Certificates证书,就能用申请Certificates的账号在这个Mac上开发多个app而不需要再重新申请Certificates。所以正确操作是,对一个Mac电脑,只需要申请一套Certificates就好了,在创建第二个第三app时不需要再去创建一套Certificates。 Services的证书是需要另外创建的,而且没有数量限制,但是还是建议只用一台Mac创建就好,他人合作导出.p12文件给对方Mac安装即可。 Software和Services都是和Mac绑定的: Certificates是和Mac绑定的,不能直接copy给其他Mac使用,但是Certificates可以导出.p12给其他Mac电脑用的,导出的.p12同样具有测试打包和发布的能力。如果多人协同开发,第二个Mac也是不需要再去申请一套Certificates的。用他人Mac电脑上Certificates导出的.p12文件安装上即可。

Certificates:证书 (1) 通过Mac钥匙串管理工具生成CSR请求文件,用于申请Certificates,与Certificates绑定

最新上架App Store 全流程

最新上架App Store 全流程 这里需要注意,不要选中证书列表中的某个证书,否则菜单就不是这个。

最新上架App Store 全流程 邮箱地址填一个,选择存储到磁盘,会正常一个.certSigningRequest文件,重命名一下,便于识别。

(2) 申请开发Development证书 先创建software部分,再创建推送证书部分。

选择iOS Development ,创建iOS Development 开发证书。Xcode11以上可以创建Apple Development 证书.

最新上架App Store 全流程

continue 下一步

最新上架App Store 全流程

选择刚刚的证书文件,

最新上架App Store 全流程

下载下来,名称是 development.cer, 如果是选择了iOS App Development 证书则名称是 ios_development.cer,最好改一下名称,方便识别。

然后双击按钮,打开钥匙串管理工具,在我的证书 就能看到安装了,需要注意的是现实的名称 不是文件名,是你开发者账号的个人team名称,里面的秘钥名称就是你刚刚填写的名称

最新上架App Store 全流程

最新上架App Store 全流程

(3) 申请iOS Distribution (App Store and Ad Hoc)生产证书

方法与上面一样,只是选择的时候选iOS Distribution (App Store and Ad Hoc)类型

最新上架App Store 全流程

然后上传CSR文件,Register,Download, 该名称。 (4) 推送证书申请 推送证书的申请与第二部分是一样的,只是中间会让选择证书绑定的App id。(这里需要先创建Identifiers,查看步骤2.Identifiers:App 身份证) 同样,需要申请Development和Distribution两种环境。

最新上架App Store 全流程

最新上架App Store 全流程

选择Mac钥匙串工具导出的.certSigningRequest文件,与这台Mac绑定。

最新上架App Store 全流程

2.Identifiers:App id

iOS每个APP都有自己唯一的身份证(Identifiers)。app的身份证就在这里申请,也就是app的唯一标识。

最新上架App Store 全流程

最新上架App Store 全流程

最新上架App Store 全流程

最新上架App Store 全流程

最新上架App Store 全流程

填写app描述,和Bundle ID

关于Bundle ID:十分重要的东西,可以理解为app的身份证号码。所有app都是唯一的。为了避免重复和辨识,一般都采用反域名的格式+app名称。 如图所示。这里一经申请变无法更改,在每个项目建立时就应该事先定义好app的Bundle ID。Bundle ID除了这里申请app需要用到以外,在申请第三方服务:如微信登陆、友盟推送、google服务等等都需要使用到Bundle ID与你的app绑定。所以,Bundle ID非常重要。 一般,我们会采用Explicit(明确的)Bundle ID标识,而不会采用Wildcard(通配符)来定义Bundle ID。 如果采用了,会导致推送这部分是没用的。

然后Register,回到 identifiers列表页可以看到刚刚创建的。

3.Devices: 设备列表

app的每个设备都有唯一的udid。将udid加入到Devices列表后,这些设备具有debug测试和ad hoc安装能力。 反正,需要测试的iPhone,iPad都需要加入到这个列表里面。 Devices设备列表是针对开发者账号,所以也只需要添加一次。 如何查看设备的udid。有很多方法,

3.1. Xcode查看(开发者查看自己的)

最新上架App Store 全流程

最新上架App Store 全流程

3.2.用蒲公英 www.pgyer.com/tools/udid

  • 添加设备列表

最新上架App Store 全流程

最新上架App Store 全流程

4.Profiles: 描述文件

描述文件Profiles将team、Identifiers、Certificates、Devices等信息联系起来。 Profiles同样分为两种环境:开发(Development)环境发布(Distribution)环境,不同的环境需建立不同的描述文件Profiles。 描述文件是这对app绑定的,所以每个APP都会建立相应的一套描述文件。但是描述文件可copy给其他Mac使用,但是对于的Mac需要安装相应的Certificates导出的.p12文件。

  • 创建描述文件

将上面创建的所有信息联系起来,供xcode使用。 同样分别创建Development和Distribution两种环境的描述文件

最新上架App Store 全流程

  • 选择App ID

最新上架App Store 全流程 选择对应的 certificates证书,开发对应开发,生产对应生产,注意是当前项目的证书,不要选择其他项目的证书。

开发环境和Ad Hoc需要选择需要测试的Devices设备,选中的Devices才具有测试和安装能力。全选即可。

最新上架App Store 全流程

然后下载,重命名。描述文件不需要安装

最新上架App Store 全流程

至此所有准备的证书和描述文件都创建完毕。

5.Xcode配置

(1).登录Xcode开发者账号,这一步容易忘记,特别是新的苹果账号,当然也可以到里面选择证书再配置

最新上架App Store 全流程

最新上架App Store 全流程 (2).配置证书及签名 首先需要取消Automatically manage signing。否则是XCode自动管理证书,会自动创建证书和bundle id等。这样会不利于证书管理。我这里就采坑了,导致自动安装了其他的证书,导致生产证书# Xcode Signing certificate is invalid when build on ext device 只好到钥匙串中删除,刚刚自动按钮的证书,退出Xcode,重新打开就可以了。 配置profile描述文件,需要为debug和release两种环境分别配置描述文件。选择3.6章节里创建的对应的描述文件,debug对应development, release对应Distribution。

最新上架App Store 全流程

provisonint Profile 文件选择,开发对应着开发,生产对应着生产。

最新上架App Store 全流程

此处可能会有个小坑,与钥匙串安装的cer 不对应,Buuld Settings 重新选择一下就可以了

最新上架App Store 全流程

调试 一个是模拟器调试 一个真机调试(数据线连上苹果手机)

最新上架App Store 全流程

6.App Connnect 注册APP

最新上架App Store 全流程

最新上架App Store 全流程

套装ID 就是申请的indentifiers,选择

最新上架App Store 全流程

填写App资料,需要注意几点: APP图标时,图标中不能包含alpha通道或者透明度;LanchImage的图片格式只能是png格式,jpg格式Xcode无法加载成功;填写联系人的时候,需要加区号,比如中国 需要+86;App预览与截屏图片,需要6.5英寸和5.5英寸就行,UI设计图的时候:5.5英寸 1242 × 2208 ; 6.5英寸 1242 × 2688

7.多人协作开发证书管理

(1).多台Mac运行相同iOS项目。

是与生成csr的mac电脑绑定的,其他的Mac 电脑无法安装,这样其他的Mac电脑就无法真机测试打包这个iOS项目了。 但是,我们可以在钥匙串中导出.p12文件给其他的Mac安装,安装后这台Mac也具有同样打包测试发布能了。 开发需要导入developer证书,发布需要导出Distribution证书。 选择对应的证书,导出

最新上架App Store 全流程

最好重新命名方便识别。 .p12文件其实就加密的.cer证书。可以copy给其他Mac安装。 第二台Mac安装.p12后,进行第四章的XCode配置后即可具有开发、测试、发布iOS的能力

(2).多人多台Mac开发相同ios项目 如果不方便把开发者账号和密码给其他人用,需要把对应开发人员加入到 开发者成员中。

最新上架App Store 全流程

最新上架App Store 全流程

最新上架App Store 全流程

随后新用户会收到一封邀请邮件,同意后即会加入开发者计划中。新用户登陆苹果开发者中心,会看到自己加入的team

新用户用刚刚导出p12文件在Xcode上配置就可以协同开发ios项目。

8.APP打包上架

(1)打包并上传IPA包 首先确保证书正确、profile描述文件正确。

最新上架App Store 全流程

需要注意的是build构建号 每次都是唯一的,version为版本号,多个版本号可以属于同一个version,

最新上架App Store 全流程

flutter项目可以顺便 改pubspec.yaml文件 version字段 如:1.0.0+1,对应ios的版本更改

设备选择:

最新上架App Store 全流程

flutter项目需要注意:需要执行 flutter build ios --release --no-codesign,需要注意的是是在flutter外层目录路径下执行,而不是ios目录路径,(我习惯在vscode中跑命令)

Product -> Archive:

最新上架App Store 全流程

直接Distribute App (如果不放心可以先Validate App)

最新上架App Store 全流程

进入Select a method of distribution(打包方式选择)界面: App Store:App Store上架包用 Ad hoc:发布测试包用,如蒲公英发布 Enterprise:企业包用 Development:开发包用 根据自己的证书和描述文件选择,在这里选择App Store,点击Next

最新上架App Store 全流程

Select a destination : 选择是直接上传还是导出,直接上传就可以

Select certificate and iOS App Store profile: 之前创建的描述文件

然后等待上传

上传成功之后,需要进入 App Store Connect, 看到

最新上架App Store 全流程 看到刚刚提交的版本,然后点击App Store ,如果第一次发版,直接在 “构建版本” 选择对应的版本文件,如果是已经上架成功,需要更新版本

最新上架App Store 全流程

填写完整的信息,提交审核。

其他(持续补充……)

最新上架App Store 全流程

最新上架App Store 全流程

  • flutter项目,上架的介绍图,如果没有UI提供,而是直接截图,需要注意需要去掉右上角的DEBUG图标

    在main.dart页面,MaterialApp中,增加 debugShowCheckedModeBanner: false, 即可。如:

最新上架App Store 全流程

参考文献:

1.flutter中文网-发布的IOS版APP flutterchina.club/ios-release…

2.iOS开发,从证书配置到上架发布 www.jianshu.com/p/815cba9e7…

3.iOS AppStore上架流程图文详解 www.jianshu.com/p/b8d8d1d14…

4.futter打包ios应用流程详解 www.jianshu.com/p/beeab8d38…

5.配置 Associated Domains www.jianshu.com/p/bebca03dc…