iOS点点滴滴

关于 iOS 中 Provisioning Profile 的一

2018-10-09  本文已影响9人  aJIEw
Autumn Leaves

在 iOS 打包发布的时候遇到了一些问题,所以稍微研究了下 iOS 打包时涉及到的一些概念以及打包安装流程,希望能加深下印象。

What's Provisioning Profiles?

类似于安卓应用必须经过签名才可以安装到手机上,同样的,在 iOS 设备上,只有经过 Apple 认证的应用才能被安装。在开发 iOS 应用时,我们难免需要使用真机测试,为了使测试版应用可以在真机上安装,我们就需要使用 Provisioning Profiles

那么,什么是 Provisioning Profiles ?

官方是这么解释的:

A provisioning profile is a collection of digital entities that uniquely ties developers and devices to an authorized iPhone Development Team and enables a device to be used for testing. A Development Provisioning Profile must be installed on each device on which you wish to run your application code. Each Development Provisioning Profile will contain a set of iPhone Development Certificates, Unique Device Identifiers and an App ID. Devices specified within the provisioning profile can be used for testing only by those individuals whose iPhone Development Certificates are included in the profile. A single device can contain multiple provisioning profiles.

首先,我们需要有一个开发者账号,这个账号是可以被整个开发团队(也就是 iPhone Development Team)共享的。通过 Apple 认证后,这个开发者账号就可以通过添加 Provisioning Profiles 来关联测试设备了。也就是说 Provisioning Profiles 起到了一个桥梁的作用,它会对应用进行验证,决定应用能否被安装到设备上。另外,只有 Provisioning Profiles 安装到测试设备上之后我们的测试应用才能安装成功,一台测试设备可以有多个 Provisioning Profiles

Provisioning Profiles 中包含以下三部分内容:

一张图看懂 Provisioning Profile

How to use it?

了解了 Provisioning Profiles 之后,我们就可以学着如何使用它了。

首先,我们需要登入开发者账户,然后进入 Certificates, Identifiers & Profiles,接下来我们就可以在这里添加 Provisioning Profiles 了。

Certificates, Identifiers & Profiles

除此之外,从上面的截图中可以看出,我们还可以在这里添加:

在创建证书的时候我们还需要使用到 CSR (Certificate Signing Request),即证书签名请求文件。它里面包含了一串加密文字信息,当申请证书的时候我们需要将这个文件递交给认证机构(Apple)。

这里提供一个创建并配置 CSR、证书及 Provision Profile 等文件的详细文档,来自友盟,这里不得不佩服友盟的文档写的是真好。

How does it work?

熟悉了以上几个概念后,我们就可以试着理解应用打包安装过程了。

Signing Config

首先看下上面这张截图,在 Signing 时需要提供 Provisioning Profile,我们在添加完 Provisioning Profile 后就可以把它下载下来,并且导入到 xCode 就行了。

可以看到我这里分别在 Debug 和 Release 的 Signing 中使用了不同的 Provisioning Profile,其实他们唯一的区别是,Release 版可以上传到 App Store 经过 Apple 的审核并签名后被安装到任何 iOS 设备上,而 Debug 版只能被安装到该 Provisioning Profile 绑定了的设备上。

Privisioning Profile Info

如上图,在配置了 Provisioning Profile 之后,xCode 首先会对一些基本信息进行验证,如果有不匹配的项会提示错误信息。

以 Debug 版为例,在打包安装会经历以下过程:

在打包安装的过程中,只有所有信息都验证通过后,应用才能安装成功并被启动。对于发布版而言,如果想要安装到真机上则必须使用类型为 Ad Hoc 的 Provisioning Profile 才可以。


参考
  1. What is a provisioning profile & code signing in iOS?
  2. What is app signing?
  3. Working with entitlements in Xamarin.iOS
上一篇下一篇

猜你喜欢

热点阅读