iOS App证书和发行👈

编辑(5/3/2018):我看到人们一直在关注这篇文章,没有比帮助别人更高兴了,所以在文章中添加了一些表达方式

好吧,创建证书并将应用分发给测试人员/用户不是火箭科学,但是,如果您是第一次这样做,则可能必须在Google上搜索该过程。 通常,开发人员会对Apple的安全方案来分发该应用程序感到沮丧,但是请相信我,这就是🍎App Store在Android Play Store上拥有许多受信任应用程序的原因(我也喜欢android😬)。 尽管有很多Stack Overflow链接可以帮助您完成此设置,但是我想总结一下并简要介绍与创建证书,生成版本并将其上传到App Store的过程相关的所有内容。 总是知道为什么做总比怎么做好。 我将本文分为三部分,一,开发/发行证书,二,通过TestFlight共享构建,三,将其上传到App Store👍

1.创建开发/发行证书

首先,我们必须了解Apple的术语以识别其用户,应用程序和设备。 Apple将iOS应用程序属性,应用程序标识符 ,加密签名的实体( 证书 )及其设备( 供应配置文件 )归为三件事。

识别码:

标识符是应用程序的唯一标识符,称为捆绑包标识符。 这也称为应用程序标识符,因为它用于在App Store中标识您的应用程序。 想象一下有100个ToDo应用程序,但是应用程序商店必须标识每个应用程序,因此它使用此标识符。 通常,它具有反向域命名法,例如:com.companyname.appname。 让我们在开发人员帐户中创建此标识符。 在“ 应用程序ID ”部分下,我们可以创建应用程序标识符并明确提及其提供的所有服务。

在“ 应用程序ID”下,我们还可以看到以前创建的标识符,也可以创建新的应用程序ID。 让我们继续,通过单击右上角的加号按钮来创建一个新的应用程序ID,它会显示一个用于创建应用程序ID的新窗口。 在这里,我们需要填写一些必填字段,应用程序ID描述(例如:AppName),应用程序ID前缀(Apple生成的开发人员团队标识符)和应用程序ID后缀(应用程序的唯一标识符)。 如果我们计划将相同的服务用于不同的应用程序,则应用程序ID后缀可以是唯一标识符或通配符应用程序ID(例如com.companyname。*),它取决于组织和应用程序并提供标识符。 如前所述,建议使用反向域模式。

现在,我们必须选择我们在应用程序中提供的服务。 最常见的服务是Apple的Push Notifications。

根据我们对服务的选择,我们可能需要执行一些其他步骤来配置它们,例如:推送通知服务,我们需要进行其他证书配置,我将在最后解释如何设置配置。

证书:

在通过其安全方案部署应用程序方面,Apple提供了最佳的安全性。 它非常灵活,在许多情况下都允许我们部署应用程序。

1通过Apple Inc加密签名的应用程序可以安全地通过App Store分发

2企业或组织可以安全地分发其应用程序,而无需将其发布到App Store。

3开发人员可以将开发二进制文件最多部署到100个自己的设备中进行测试。

4App开发人员可以通过将签名的应用程序直接部署到客户来运行Beta程序。

证书:苹果在安全性方面非常严格。 我们生成的任何版本(如果必须转到任何Apple设备)都必须正确签名以确保安全。 这就是为什么我们需要Apple发行的加密证书。 对于应用程序的部署,Apple着眼于两个不同的领域,即DevelopmentDistribution 。 我们需要为这两种情况创建证书。 创建证书时,我们首先必须创建来自Mac的证书签名请求,以将您定义为请求Apple为开发/分发颁发证书的实体/组织。 为此,您必须通过keyChain Access创建请求文件。

提供组织的电子邮件ID和名称以创建请求文件。

创建完文件后,将其保存在磁盘上,然后打开开发人员帐户以创建证书。 导航到证书部分,我们可以看到Apple已经发布的证书列表,然后单击右上角的加号按钮可以创建新证书。

我们必须选择我们要颁发的证书类型,有开发生产两种类型。 开发通常用于颁发证书,以将应用程序部署到开发人员的设备上(到受限设备)以进行测试,但是现在,苹果使用最新的xcode自动化了此过程。 另一方面, 生产用于颁发证书,以通过App Store / Ad-Hoc(在企业内部分发)将其部署到许多设备上。 根据服务和环境,我们必须选择适当的选项。 选择之后,继续上传请求文件以获取签名证书。

创建证书后,将其下载到磁盘上。 我们可以将Apple签名的证书以.p12格式导出给其他开发人员,以避免在此计算机上发给该实体的私钥的依赖性或单点故障。

供应配置文件:

供应配置文件是此过程中最令人困惑的部分。 它将标识符和证书组合到设备中。

配给配置文件只是说,带有使用此证书的私钥签名的标识符的应用程序可以在这些设备上运行。

我们可以再次针对两个不同的世界( 开发发行)创建供应配置文件。 开发配置文件具有设备限制,因为“分发”通常用于将其部署到App Store或在组织内部进行分发。

推送通知的配置:在创建应用程序标识符时,如果我们选择了推送通知服务,则必须为其配置相应的Web服务器。 为了进行此设置,我们必须创建另一个证书,因为Apple希望带来更高级别的安全性来绑定Web服务器和应用程序。 现在,我们已经创建了应用程序ID,单击“编辑”,在推送通知下,我们现在可以看到其他配置证书。

2.通过TestFlight共享构建

开发人员经常发现很难将iOS二进制文件共享给用户/测试人员。 这不像Android开发人员通过在电子邮件中附加`.apk`文件来共享构建那样简单。 Apple提供了通过Ad-Hoc配置文件以.ipa格式文件导出应用程序的默认方法,但这是一个繁琐的过程,用户应将其设备连接到iTunes以获取.ipa文件。 有许多第三方应用程序,通过提供一个界面来上传应用程序并提供可下载的链接,从而使此过程变得容易,例如:Fabric / Crashlytics,DIWAI,installrapp等。

苹果收购了TestFlight之后,它便简化了应用程序共享平台,从而使此过程变得简单。苹果更新了iOS操作系统后,其他第三方应用程序很难提供平台来共享内部版本。 现在,可以轻松地通过Apple平台共享内部版本,并收集测试人员的反馈,并轻松地在xcode中查看崩溃报告。

让我们创建一个构建,并查看通过TestFlight共享应用程序的过程。

在iTunes connect中创建一个新应用,并填写有关该应用的必要信息。 使用适当的代码签名证书和标识符的配置文件来归档代码。 存档构建文件后,xcode将打开组织器。

单击“上载到App Store”,它将把构建版本上载到App Store。 完成后,我们可以在“活动”窗格下看到此活动。 最初,苹果会对应用程序中提供的API,资产和其他权利进行健全性检查,一旦通过验证,便可以将其发送到App Store / TestFlight进行测试。

要共享测试版Beta版,我们可以通过填写必要的应用程序信息将其上传到TestFlight窗格中。

TestFlight最好的部分是,它记录会话,安装并提供崩溃报告,其中包含许多开发人员友好的详细信息,用于调试应用程序。 我们可以直接在xcode Organizer> Crashes中查看这些崩溃报告。

TestFlight将测试人员分为两类,内部测试人员和外部测试人员。 内部测试人员是拥有开发人员帐户并想要测试应用程序的人员,对于他们来说,我们可以直接共享构建。 对于外部用户,我们必须进行Apple的Beta测试,以通过电子邮件ID共享构建,然后他们才能通过TestFlight iOS应用安装该应用。 截至2016年,我们最多可以添加2000个外部用户和20个内部用户进行测试。

我们与外部用户共享的每个版本都将在60天后过期,我们可以通过上传新版本来更新版本,并且它会自动将更新显示给TestFlight应用程序中的测试人员,就像在AppStore中显示的一样。

崩溃报告显示在xcode的组织器中,可以帮助开发人员修复它们。

3.将应用上传到App Store

将应用程序上载到应用程序商店是相对最简单的任务。 在整个过程中,Apple对构建进行了完好性检查,如果不符合开发准则,则会引发错误。 最常见的错误是资产alpha通道错误,资产大小不匹配,有时还有快速库错误。 通过所有测试后,我们可以将应用提交给应用审查,以正式批准该应用发布,这大约需要7-10个工作日,具体取决于应用/第三方应用交互的复杂程度等。如果不符合准则,他们将通过陈述错误来拒绝它,他们遵循某些审查准则来审查该应用程序,请确保您遵循这些准则或在提交前进行检查。

我们也可以通过适当的理由要求Apple审核小组(通过在iTunes Connect中与我们联系来写信给他们)来加快应用程序审核过程。 大多数情况下,如果应用程序发布与任何实时事件(如PR事件等)相关联,他们都会接受加速请求。

如果您无法上传构建版本或在审核过程中拒绝了该应用程序,Apple团队会与应用程序发布过程保持紧密合作。 您可以与他们联系以寻求帮助,并解释应用程序的行为。 如果他们认为原因是正确的,他们将通过构建。 但是发布iOS应用程序是一项艰巨的任务。 开发人员必须努力争取,直到该应用程序获得Apple Review团队的批准。 感谢您阅读到最后。 请随时在下面分享您的评论。 继续阅读🤘