iOS 之从创建(Development、Distribution)证书到发布

iOS 之从创建(Development、Distribution)证书到发布

简介:

惊奇的发现,一模一样的工程用 xcode8 和 xcode9 编译,证书的报错信息不一样 ~ iOS 11 又来搞事了,xcode9 又来搞事了,以下是我阅览一些原创文章和官方文档加上我的理解整理的关于分发 app 的文章。
主要是讲证书的知识与当中会产生的错误以及拓展一些知识。

我们先来看一个流程图:
接下去要讲的内容、步骤都是围绕这个流程图来讲述

iOS 之从创建(Development、Distribution)证书到发布_第1张图片

发布流程图
iOS 之从创建(Development、Distribution)证书到发布_第2张图片

证书类型

条件:

需要构建一个特定于其的分发提供配置文件。这个配置文件允许应用程序进行数字签名发布,以便它可以安装在 iOS 设备上。与开发配置文件类似。

基础条件

所以,我们现在需要做的,就是:申请 p12 文件、生成 Development 证书、生成 Distribution 证书。

tips:

只有团队代理和管理员可以创建分发证书和供应配置文件。

步骤:

1、申请 app ID (将项目中的 ID 向苹果申请)
2、申请请求证书,导入钥匙串(这个就是允许在 Mac 上签名的作用)
3、生成 Development 证书 (作用是真机调试、发包测试)
4、生成 Distribution 证书 (作用是提交到 appStore)
5、申请 Development 描述文件(作用是输入 UDID 绑定设备、配置第 7 步)
6、申请 Distribution 描述文件(作用是配置第 7 步)
7、在项目 General、Built Settings 中配置好证书
8、上传到 appStore

步骤一、申请 app ID

iOS 之从创建(Development、Distribution)证书到发布_第3张图片

添加 ID
iOS 之从创建(Development、Distribution)证书到发布_第4张图片

描述一下这个 app
iOS 之从创建(Development、Distribution)证书到发布_第5张图片
app 中的 Bundle ID
iOS 之从创建(Development、Distribution)证书到发布_第6张图片
选择 app 支持的服务

这里就完成了这一步。

步骤二、申请请求证书,导入钥匙串
tips:如果已经有 p12 文件,则可以直接使用。没有则去生成。
生成证书请求文件
tips:不管是申请开发 (Development) 证书还是发布 (Distribution) 证书,都需要使用证书请求 (.certSigningRequest) 文件
打开 Mac 上的钥匙串,从证书助手那里请求证书。

iOS 之从创建(Development、Distribution)证书到发布_第7张图片

请求证书

然后选择将请求文件存到本地磁盘

iOS 之从创建(Development、Distribution)证书到发布_第8张图片

Snip20180131_12.png

到这里,(.certSigningRequest) 文件就已经请求存到我们 Mac 上了

iOS 之从创建(Development、Distribution)证书到发布_第9张图片
请求文件 tips:

也简称 CSR file。我们之后要创建的 (Development) 证书还是发布 (Distribution) 证书,都需要使用证书请求 (.certSigningRequest) 文件。

步骤三、生成 Development 证书 (真机调试、发包测试)

iOS 之从创建(Development、Distribution)证书到发布_第10张图片

生成对应的证书

Development 证书我们就勾选 Development 那一栏。
1)上传刚才请求的 CSR 文件。

iOS 之从创建(Development、Distribution)证书到发布_第11张图片

上传 CSR 文件

2)点击 Continue 按键,并下载生成的证书
在 Mac 下载栏中看到 Development 证书已经生成好了

iOS 之从创建(Development、Distribution)证书到发布_第12张图片

Development 证书

步骤四、生成 Distribution 证书 (提交到 appStore)
Distribution 证书我们就勾选 Distribution 那一栏
同理也要上传 CSR 文件,步骤跟生成 Development 证书一样

iOS 之从创建(Development、Distribution)证书到发布_第13张图片

Distribution 证书

到这里:两个证书都已经生成好了,我们需要将这两个证书保存到钥匙串中,具体做法是:双击保存在 Mac 的两个证书。我们去钥匙串会看到:

iOS 之从创建(Development、Distribution)证书到发布_第14张图片
钥匙串保存好的证书 tips:

这里为了以防万一,我们可以可以将证书导出来,下一个开发者接手项目的时候双击 P12 就可以保存到自己电脑中的钥匙串中就可以使用,就不用重新生成了。

iOS 之从创建(Development、Distribution)证书到发布_第15张图片

导出 P12 文件

来到这里,还没有成功,我们的测试设备没有设置,这时候,我们需要描述文件去匹配 device。

tips:

规定一个开发者账号最多可以添加 100 台不同的设备。

步骤五、申请 Development 描述文件

iOS 之从创建(Development、Distribution)证书到发布_第16张图片

选择 Provisioning Profiles

选择 Development,点击右上角的 ”+“号

iOS 之从创建(Development、Distribution)证书到发布_第17张图片

选择描述文件的类型

选择 app ID

iOS 之从创建(Development、Distribution)证书到发布_第18张图片

选择 app ID

选择 Development 证书

iOS 之从创建(Development、Distribution)证书到发布_第19张图片

选择 Development 证书

选择可以测试的设备

iOS 之从创建(Development、Distribution)证书到发布_第20张图片

选择设备

给描述文件命个名

iOS 之从创建(Development、Distribution)证书到发布_第21张图片

命名

最后我们把描述文件下载下来。

到这里 Development 描述文件就完成了。

步骤六、申请 Distribution 描述文件(配置第 7 步)
申请 Distribution 描述文件跟申请 Development 描述文件是一样的。只不过过程中你不需要选择可以测试的设备。
步骤七、在项目 General、Built Settings 中配置好证书

iOS 之从创建(Development、Distribution)证书到发布_第22张图片

General 配置
iOS 之从创建(Development、Distribution)证书到发布_第23张图片

Snip20180202_37.png

到这里,我们就可以做最后一步了,将 app 上传到 appStore。

拓展:

这张图是讲解三个证书的区别:

iOS 之从创建(Development、Distribution)证书到发布_第24张图片

三种证书的区别

tips:第 2 种证书是用来测试的,不一定要用。本文中没有对该证书做描述。

这张图是讲解 Apple Developer Program 与 Apple Developer Enterprise Program 的异同:

iOS 之从创建(Development、Distribution)证书到发布_第25张图片
两种身份 tips:

一般我们都是 Apple Developer Program 这个身份。

关于 TestFlight:

TestFlight is Apple’s beta testing service for iOS apps, and is accessible only through iTunes Connect. It is currently available for iOS 8.0 apps and above. TestFlight allows for beta testing with both internal and external users, and due to a Beta app review for the latter, ensures a much easier process in your final review when publishing to the App Store.
TestFlight 是苹果公司针对 iOS 应用程序的 beta 测试服务,只能通过 iTunes Connect 访问。它目前可用于 iOS 8.0 及以上版本的应用程序。TestFlight 允许内部和外部用户进行 beta 测试,并且由于对后者进行了测试版应用程序审查,因此可以在发布到 App Store 时确保在最终审核中更简单。

简言之:TestFlight 就是可以让我们将 app 放到 appStore 上给外部用户测试,高仿真实的发布环境,使测试环境更加真实,确保了最终的 App Store Review 的成功机会更高。

可能会出现的报错信息:
1)doesn't include the com.apple.security.application-groups entitlement.
解答:这个是说你没有设置 App Groups 这个属性。App Groups 是指两个独立的 app 可以共享沙盒的数据。如果你不需要这样干,去检查你的设置:

iOS 之从创建(Development、Distribution)证书到发布_第26张图片

Snip20180202_41.png

这个你是不是打开了,如果打开了,关掉。如果你真的需要这样设置,那么去配置一下,可以参考

App 之间的数据共享——App Group 的配置

2)Provisioning profile "XC iOS Ad Hoc: trops.football.amateur" is Xcode managed, but signing settings require a manually managed profile.

解答:Xcode 9 does not accept Xcode-generated Provisioning Profile (with "XC iOS" in the name). So the solution is to clone the Xcode-generated Provisioning Profile in a new one with a different name. 就是 xcode9 不给证书出现 “XC iOS” 这个字眼。

想要了解更多,你可以阅览:
1、https://developer.xamarin.com/guides/ios/deployment,_testing,_and_metrics/testflight/
2、https://help.apple.com/xcode/mac/current/#/dev8b4250b57

原文地址:https://www.jianshu.com/p/304ec98842e1

你可能感兴趣的:(iOS 之从创建(Development、Distribution)证书到发布)