签名证书 - 最让iOS开发头痛的事情

在这里我不讲如何操作证书,我只把大致流程说明一下,以及说一些关于非自动模式下如何配置你的证书。

1. 首先你要有一个苹果开发者帐号

个人、公司性质都可以(能发布到appstore上,不是企业内部开发帐号)

2. 通过网上教程生成CSR

很多经常和iOS开发打交到的在developer.apple.com上会遇到要提供csr文件。这个文件是mac本地keychain创建生成的。其实名字后缀是 “ certSigningRequest ”,这个文件多少年都不要丢,这是很重要的文件。

3. 到网站上生成帐号证书

developer.apple.com上生成证书有很多种类型,不管哪种类型都需要csr。

  • 开发证书 develop
    包括app开发证书和推送开发证书两种


    image.png
  • 发布证书 release

    • 在testflight之前appstore 和 adhoc不是一个证书, 现在adhoc虽然还能用,但是因为testflight的便利,基本没人用了。
    • 推送证书


      image.png

这两个证书需要下载安装到keychain中

4. 生成app id

  • appid的名字
    只作为网站上的识别符


    image.png
  • 明确的id / 模糊的id


    image.png

id名的起法, id名起法其实可以随意, 只要符合字母和小数点组合就行, 关键在于自己的id即便和别人的id重叠, 也会因为帐号的前缀(每个开发主账号都有唯一前缀码)相互区分。虽然可以随便起名,但是还是保持良好的习惯按照苹果给的例子,com.开发者公司/域名.app名称 来起名, 如果遇到了不同证书的不同id,也可以很好的在本地区分。

这里需要注意的是, 模糊的id可以作为app开发签名的id, 但是不能作为发布签名的id, 发布签名必须使用明确的id.

  • 需要的额外服务
image.png

这里,推送就是需要提供csr

5. 增加设备到开发中

可以批量导入, 也可以一个一个添加
udid可以通过itunes连接设备来查看。


image.png

6. app签名

  • 开发签名
    开发签名对应5提到的所有录入的设备(设备上限貌似100台)
    以及3提到的所有开发证书
    可以使用泛类id, 也可以使用精准id
image.png
  • 发布签名
    发布签名只能使用精准id
    对应的发布证书也只能是一个, 它的有效期跟着发布证书走, 从发布证书创建+1年过期


    image.png
image.png

7. 开发时用到哪些?

  • 手动布置
    手动配置, 挺麻烦的, 开发证书/发布证书/key/开发签名/发布签名都需要配置正确下载并安装进mac上才可以


    image.png
  • 自动适配
    这打勾即可


    image.png

8. 遇到最常见的签名错误

  • 开发签名无效
    开发签名无效一般就是开发证书没下载或者开发签名过期, 比较简单, 重新生成下载就好了.

有主账号直接添加


image.png
  • 发布签名无效
    要达到发布签名有效, 必须观察keychain内是否有对应的distribution证书, 并且此证书能展开key ( 一般无法发布原因是签名, 证书都有, 但是key并没有, 在网站上完全看不到这个展开, 每个发布证书都看着没什么区别, 需要下载下来对照着keychain看)
    当发布证书能展开key时, 回到网站上将发布签名改为这个证书对应的重新生成并下载下来(区别方法就是有效日期)


    image.png

另一种方法是在xcode中添加, 当你有发布主帐号时, 在xcode的账户设置下轻松可以搞定很多事情, 直接添加发布证书即可.

需要注意的是发布证书创建是有数量上限的. 能不创建最好不创建.

image.png

发布证书最好从带key的mac上直接下载来用, 从developer上下载下来的不包含key

你可能感兴趣的:(签名证书 - 最让iOS开发头痛的事情)