iOS开发个人证书多设备的常用部署-Part1

前段时间,项目的发布证书过期了,于是整理了一番,简单总结一下吧。

初步了解

开发和发布iOS App,必须加入苹果的开发者计划(Apple Developer Program)。

苹果开发者计划,有两种:

  • 个人版(Individual $99/Year)
  • 企业开发(Organization $299/Year)
iOS开发个人证书多设备的常用部署-Part1_第1张图片
Apple Developer Program

目前多数个人开发者和一些规模不太大的企业,都是使用个人版。

从开发角度来讲,企业版对于个人版最大的不同在于,可以进行企业发布
企业发布打包的ipa,通过fir.im和蒲公英等第三方来发布。
任何人都可以安装这个App,不必通过苹果的审核。

但也是有一些限制,例如证书如果无效了,App就打不开了。
数目好像也有限制。了解的童鞋,请留言。这里不深入。

申请步骤也没什么特别,一步一步按要求填写就OK,这里直接跳过了。申请地址

申请成功后,进入开发主页,点击账户,进入账户主页.

iOS开发个人证书多设备的常用部署-Part1_第2张图片
账户主页

点击 Certificates,IDs & Profiles进入证书管理。

iOS开发个人证书多设备的常用部署-Part1_第3张图片
三种证书

可以看到证书是分为3种来进行管理,请避免不小心选错的尴尬。

  • iOS,tvOS,watchOS
  • macOS
  • Safari Extension
iOS开发个人证书多设备的常用部署-Part1_第4张图片
开发和发布相关

Keys 是新出的一个东西,相关内容如下,这里不作深入。

iOS开发个人证书多设备的常用部署-Part1_第5张图片
keys

(翻译)创建一个key可以用来配置和认证一个或者多人苹果服务。不像证书,keys是不会过期的,而且创建后依然可以修改来使用更多服务。更多关于创建和使用keys的信息,可以通过创建key时候,点击相关的链接来了解。

接下来是手动管理signing的部分。
如果你只使用Automatically manage signing,可以跳过该部分。


iOS开发个人证书多设备的常用部署-Part1_第6张图片
自动管理

Automatically manage signing会自动创建证书。
由于我们团队的管理是比较开放的(每个童鞋都知道开发者帐号密码)。A童鞋自动创建好的,B童鞋再自动创建,如果数量超出限制,会导致之前的证书被revoke了,无法使用。
所以后来我们团队关闭自动管理,避免相互影响。

手动创建

开发和发布App最基础的三个东西。

  • Certificates (证书)
  • Identifiers (App ID相关)
  • Provisioning Profiles (配置文件)
第一步,先创建App ID。
  • 填App描述,即App名,不过此名非真正显示的App名,只是在配置证书使用的名字。


    iOS开发个人证书多设备的常用部署-Part1_第7张图片
    app描述
  • 填写App ID,即app的bundle ID

即创建工程的时候,如下图位置的id:


iOS开发个人证书多设备的常用部署-Part1_第8张图片
bundle

回过头来想,开发一个App最先应该做的应该是申请App ID,应为App ID在不允许和其他App(整个App Store)重复,具有唯一性。如果重复只能老老实实修改。

iOS开发个人证书多设备的常用部署-Part1_第9张图片
App ID

Wildcard App ID 请忽略,想了解用途的戳我。

  • 勾选相关服务
    这里选择了推送和App Group(App Group将在下一篇讲到)。


    iOS开发个人证书多设备的常用部署-Part1_第10张图片
    服务

Continue , Register,Done 完成App ID的创建。


iOS开发个人证书多设备的常用部署-Part1_第11张图片
完成testapp的ID创建
创建证书
  • 选择证书类型


    iOS开发个人证书多设备的常用部署-Part1_第12张图片
    点击+号开始
iOS开发个人证书多设备的常用部署-Part1_第13张图片
选择
Development开发证书
  1. iOS App Development
    不含推送服务的开发证书,该证书与App关联(即创建时需要选择App ID,并仅供选择的App开发使用)。
    如果App不含推送服务,创建改证书。
    如果App含推送服务,可以不创建。
  2. Apple Push Notification service SSL (Sandbox)
    供关联的App使用的,含推送服务的开发证书。
    如果App含推送服务,创建该证书,否则推送服务无法开发测试。
Production发布证书
  1. App Store and Ad Hoc (限制创建两个)
    供所有app开发使用,不和App关联。
    如果原来发布app,可以使用原来的发布证书。

  2. Apple Push Notification service SSL (Sandbox & Production)
    供关联app product环境推送使用,先要安装到电脑中,导出P12文件给后台开发人员使用。

发布证书,有的称之为生产证书,Production,个人习惯叫发布证书,对应develop 和 Release。

简单总结:

含推送App需要3个证书

iOS开发个人证书多设备的常用部署-Part1_第14张图片
含推送App需要3个证书

不含推送App需要2个证书
iOS开发个人证书多设备的常用部署-Part1_第15张图片
不含推送App需要2个证书

  • 选择App


    iOS开发个人证书多设备的常用部署-Part1_第16张图片
    选择App
  • 创建证书请求文件


    iOS开发个人证书多设备的常用部署-Part1_第17张图片
    创建csr

打开Keychain,从证书颁发机构请求证书,很好理解,就是从苹果那请求证书。


iOS开发个人证书多设备的常用部署-Part1_第18张图片
keychain

我们选择存到磁盘的方式,填写电子邮件


iOS开发个人证书多设备的常用部署-Part1_第19张图片
创建csr

选择存储位置,修改名字,例如testapp.certSigningRequest


iOS开发个人证书多设备的常用部署-Part1_第20张图片
csr文件
  • 上传csr文件
    回到网页端,contine后,会要求我上传CSR文件。


    iOS开发个人证书多设备的常用部署-Part1_第21张图片
    上传CSR
  • 创建成功后,下载,双击安装,然后在Keychain里就能看见了。如果可以展开,含专用密匙,则正常。


    iOS开发个人证书多设备的常用部署-Part1_第22张图片
    创建成功

    keyChain

什么时候会出现不能展开的情况呢?
当我用A电脑生成csr,请求的证书,下载后,直接安装在B电脑上。就是不能展开。那么怎么在B电脑上也能正常使用证书开发?这个将在下面解答。

使用同样的方法创建两个发布证书,CSR文件可以用同一个。

创建Provisioning Profile文件

Provisioning Profile是依赖证书,App ID,注册设备的配置文件,同样有开发和发布两种。

Provisioning Profile下文将简称为Profile。

iOS开发个人证书多设备的常用部署-Part1_第23张图片
点击+添加
  • 选择类型


    iOS开发个人证书多设备的常用部署-Part1_第24张图片
    选择类型

已注册设备将在下面介绍。

  • 选择App ID


    iOS开发个人证书多设备的常用部署-Part1_第25张图片
    App ID
  • 选择证书

  1. 如果为这个App创建了多个证书,可能会有多个选择。可能只选择其中一个,多个,或者全选。
  2. 如果名字都一样,不知道是哪个,全选是比较稳的。
  3. 选择多个或者全选,有什么缺点呢?就是其中任意一个证书失效,则这个Profile文件也就失效了。需要重新Generate。

重新Generate并不是重新创建。这个也将在下文提到。

iOS开发个人证书多设备的常用部署-Part1_第26张图片
证书
  • 选择设备
    建议全部选上,这里选择就是注册设备。


    iOS开发个人证书多设备的常用部署-Part1_第27张图片
    选择设备
  • 输入profile的名字,例如testAppDev。
    这名字最好统一几。因为一些无效的profile,xcode并不会自动清除,强迫症患者会觉得不爽。


    iOS开发个人证书多设备的常用部署-Part1_第28张图片
    profile的名字
  • 完成profile文件的创建。
    profile文件通常不会直接从网页下载,而是在Xcode中下载。


    iOS开发个人证书多设备的常用部署-Part1_第29张图片
    完成

发布的profile文件,使用同样的方式创建,不同的是,没有选择设备这个步骤,毕竟发布是面向所有设备(App Store)的发布。
Ad Hoc发布方式,即面向已注册设备的发布方式。当我们需要对所有已注册设备发布Release包,适合使用这种发布方式。这种也是需要选择设备的。
Ad Hoc发布方式可以通过fir.im和蒲公英等第三方来发布,已注册设备就能扫码安装了。

创建是注意有多个发布证书时,注意选择对应你电脑上安装的发布证书,如下图:


iOS开发个人证书多设备的常用部署-Part1_第30张图片
发布证书的选择

细心的童鞋会发现这里怎么有3个,不是限制两个吗?
恩,其中有个无效的。限制有效证书两个,可能会产生无效的证书。

上文提到,App Store and Ad Hoc创建时是不和App关联。那它发布时是怎样和我们开发的App建立关系呢?
恩,就是靠这个profile文件。

三种profile,我们都创建,分别是testAppDev,testAppDis, testAppAdHoc。
补充一句:profile文件貌似没有限制个数,但我们正式开发的时候,还是建议不要太随意。


iOS开发个人证书多设备的常用部署-Part1_第31张图片
Ad Hoc

我使用含推送功能的App为例,安装好上面的3个证书,创建好3个profile文件后,我们进入下一步。

Xcode配置

关闭Automatically manage signing
iOS开发个人证书多设备的常用部署-Part1_第32张图片
关闭自动管理
下载profile文件
iOS开发个人证书多设备的常用部署-Part1_第33张图片
下载profile
选择对应的profile文件
iOS开发个人证书多设备的常用部署-Part1_第34张图片
选择profile

如果Signing这块没有报错,那么我们针对这台电脑的配置完毕了。

添加新的注册设备

新的iPhoneX或者是旧的iPhone4S,如果没有注册过,不能安装我们测试的ipa,也不能进行真机调试,真机调试会出现下面错误:

iOS开发个人证书多设备的常用部署-Part1_第35张图片
未注册设备

如果有人对你喊,测试包安装不了,第一个先检查设备注册过没有。

在关闭了Automatically manage signing后,需要我们手动注册。

注意,注册设备的数量是有限的。

iOS开发个人证书多设备的常用部署-Part1_第36张图片
注册设备
iOS开发个人证书多设备的常用部署-Part1_第37张图片
填写信息
iOS开发个人证书多设备的常用部署-Part1_第38张图片
Xcode中获取UDID
iOS开发个人证书多设备的常用部署-Part1_第39张图片
itunes中获取UDID

填入UDID后,register。


iOS开发个人证书多设备的常用部署-Part1_第40张图片
注册

更新profile文件

注册了设备,还要更新那些关联了设备的profile文件,这样profile文件才有效。
回顾一下3个profile文件中哪些关联了设备?

没错,testAppDev和testAppAdHoc。


iOS开发个人证书多设备的常用部署-Part1_第41张图片
编辑testAppDev

iOS开发个人证书多设备的常用部署-Part1_第42张图片
testAppDev

testAppAdHoc同样的方式重新Generate后,错误变成如下,直接点击Update就OK了。


iOS开发个人证书多设备的常用部署-Part1_第43张图片
Update Profile

证书变动,注册设备的disable或者删除,导致profile文件失效,都可以重新Generate一下来重新生效。

推送证书的导出

在keychain中找到对应的推送证书,分别为开发和发布(生产)环境。
右键导出p12文件,会要求你输入密码,并把导出密码两个文件已经交给后台开发人员即可。


iOS开发个人证书多设备的常用部署-Part1_第44张图片
推送证书

下一篇,Part2,将主要小结多台mac的部署,App Group以及configuration相关的证书配置。

你可能感兴趣的:(iOS开发个人证书多设备的常用部署-Part1)