Tag: 部署

什么是iOS中的配置文件和代码签名?

资料来源:Stackoverflow和互联网🤓。 Apple的定义 :供应配置文件是数字实体的集合,这些数字实体将开发人员和设备与授权的iPhone开发团队唯一地联系在一起,并使设备可以用于测试。 与Android不同,您无法在iOS设备上安装任何应用。 必须先由Apple签署。 但是,在开发应用程序时,您可能需要先对其进行测试,然后再将其发送给Apple批准。 供应配置文件充当设备和开发者帐户之间的链接。 在开发期间,您可以选择哪些设备可以运行您的应用程序以及您的应用程序可以访问哪些应用程序服务。 从您的开发人员帐户下载了配置文件,并将其嵌入到应用程序捆绑包中,并且整个捆绑包均已代码签名。 必须在要在其上运行应用程序代码的每台设备上安装开发配置文件。 如果配置文件中的信息与某些条件不匹配,则您的应用将无法启动。 每个开发配置概要将包含: 开发证书- 开发证书。 这些适用于希望在编写代码时在物理设备上测试应用程序的开发人员。 唯一设备标识符(应用程序可以在其上运行的设备列表) 一个应用程序ID( 可以包含*通配符,用于具有相似包标识符的许多应用程序 )。 —应用程序ID是由两部分组成的字符串,用于标识单个开发团队中的一个或多个应用程序。 在配置文件中指定的设备只能由配置文件中包含iPhone开发证书的个人用于测试。 单个设备可以包含多个配置文件。 那么,当我们将设备连接到xcode并安装应用程序时会发生什么? 在设备上安装应用程序时,会发生以下情况: Mac中的配置文件会转到您的钥匙串中的开发人员证书。 xcode使用证书对代码进行签名。 设备的UUID 与供应配置文件中的ID匹配 。 供应配置文件中的AppID与应用程序中的捆绑包标识符 匹配 。 所需的权利与应用程序ID相关联。 用于对应用程序签名的私钥与证书中的公钥匹配。 这是xcode签名部分的屏幕截图: 因此,从上面的图像中,您可以看到已检查AppID,已验证证书,已匹配团队,已匹配功能和权利。 如果上述所有步骤均成功,则将已签名的二进制文件发送到设备,并针对应用程序中的相同配置文件进行验证 ,并最终启动 。 如果这些条件中的任何一个失败,则该应用程序将无法安装-您将看到一个灰色的应用程序图标。 开发配置文件和分发配置文件之间的区别在于,分发配置文件不指定任何设备ID。 如果您要发布一个仅限于已注册设备数量的应用程序,则需要为此使用临时文件。 分发配置文件用于将应用提交到App Store进行分发。 苹果审核了该应用程序后,他们使用可以在任何设备上运行的自己的签名登录该应用程序。 通过对应用程序进行签名,iOS可以识别谁对您的应用程序进行了签名,并可以验证自从您对应用程序进行签名以来未对其进行修改。 签名身份由Apple为您创建的公私钥对组成。 非对称密码学 非对称加密使用公共密钥和私有密钥 。 用户必须保留自己的私钥,但可以共享公钥。 使用这些公钥和私钥,用户可以证明自己确实是他本人。 非对称密码学如何工作? 假设有一个UserA和UserB 。 […]