欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS开发证书那点事儿

程序员文章站 2022-06-29 08:17:47
iOS开发是用Xcode作为开发工具,Xcode在安装之后就自带了模拟器(Simulator)。模拟器是个好工具,它对用户没有任何要求,但是我们必须牢记一件事:开发出来的App最终是要在真机上执行,没有在真机上调试过,发布出去的App一定会出现各种意想不到的问题,而且无法解决。而要使用真机调试,开发 ......

ios开发是用xcode作为开发工具,xcode在安装之后就自带了模拟器(simulator)。模拟器是个好工具,它对用户没有任何要求,但是我们必须牢记一件事:开发出来的app最终是要在真机上执行,没有在真机上调试过,发布出去的app一定会出现各种意想不到的问题,而且无法解决。而要使用真机调试,开发证书就无法绕过去。

一.开发账号

苹果的开发账号主要分为三种:

  • 个人开发账号:$99;app能上app store;只能个人使用。
  • 公司开发账号:$99;app能上app store;可多人协作开发。
  • 企业开发账号:$299;app不能上app store,仅能公司内部分发;可多人协作开发。
    个人和公司账号除了允许的使用人数不一样之外,没有其他不同。接下来将以个人开发账号为例阐明证书的创建及使用流程。

二. 创建证书及使用-以个人账号的开发证书为例。

  1. 生成csr文件
    csr文件是通过mac的钥匙串生成的,是创建开发证书必须的。方法:打开钥匙串,【钥匙串访问】->【证书助理】->【从证书颁发机构请求证书】,填入“电子邮件地址”和“常用名称”,选择“存储到磁盘”,点击继续。之后我们会得到一个csr文件:certificatesigningrequest.certsigningrequest

    注意:在生成csr文件的同时,会生成一对秘钥:公钥和私钥,私钥被保存到钥匙串中(可在钥匙串中查看),公钥被包含在csr文件中用于创建证书。

  2. 创建证书

    使用开发者账号登录:

    • 创建appid。

      appid也就是app的bundleid,用于唯一标示你的app。可通过"identifiers"栏目创建,例如com.example.myapp。这里要说一句,如果不使用推送功能,可创建形如com.example.*的appid;但如果要使用推送功能,就必须使用具体的appid。创建appid的时候可同时勾选推送服务,然后创建推送证书。

    • 添加device。

      将你iphone的uuid添加到开发账号中去,这样你的iphone就可以用于调试。不在开发账号中的设备无法参与调试。可通过"devices"栏目添加。

    • 生成证书。

      在"certificates"栏目下创建证书,选择"ios app development",之后按要求上传csr文件即可生成开发证书。

    • 创建provisioning profile(即pp文件)。

      进入"profiles"栏目,选择"ios app development",之后选择要加入到pp文件中的appid,然后选择加入到pp文件中的证书,最后选择加入到pp文件中的设备。

      注意:pp文件可以看成是一个"数据包“,不同类型的pp文件包含不同的内容:

      development pp = appid + developmentcerts(可包含多个) + devices

      distribution pp = appid +distributioncert

      adhoc pp = appid + distributioncert + devices

  3. 本地配置

    将上述创建的证书(若有推送证书也需要一起下载下来)和pp文件下载到本地。双击安装证书会将证书添加到钥匙串中,并自动与之前创建的私钥关联起来。双击pp文件会将其添加到xcode中,在真机调试时,xcode会根据pp文件去钥匙串中访问相应的证书和私钥,并验证连接的设备是否已经包含在pp文件的设备清单中。如果没问题,就可以愉快的进行真机调试了。

三.p12文件

如果有多台mac的开发需求,自然会想到在每台mac上都重复以上的步骤来创建证书和配置环境。但是apple对一个开发账号下创建的证书个数进行了限制,在创建多个证书之后就无法继续创建了。事实上,mac开发过程中最重要的是创建csr文件时生成的私钥,可通过从钥匙串中将证书(包含私钥)导出为p12文件来解决多台mac开发的问题。

  1. 打开钥匙串,找到对应的证书,展开证书项会发现其关联了私钥。右键导出为p12文件。未关联私钥的证书是无法导出p12文件的。
  2. 将该p12文件和pp文件分发到其他用于开发的mac上面,然后安装即可。