美文网首页iOS Developer
iOS开发个人证书多设备的常用部署-Part1

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

作者: iDeveloper | 来源:发表于2017-12-17 21:56 被阅读43次

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

初步了解

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

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

  • 个人版(Individual $99/Year)
  • 企业开发(Organization $299/Year)
Apple Developer Program

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

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

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

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

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

账户主页

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

三种证书

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

  • iOS,tvOS,watchOS
  • macOS
  • Safari Extension
开发和发布相关

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

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

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


自动管理

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

手动创建

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

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


    app描述
  • 填写App ID,即app的bundle ID

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


bundle

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

App ID

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

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


    服务

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


完成testapp的ID创建
创建证书
  • 选择证书类型


    点击+号开始
选择
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个证书

含推送App需要3个证书
不含推送App需要2个证书
不含推送App需要2个证书
  • 选择App


    选择App
  • 创建证书请求文件


    创建csr

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


keychain

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


创建csr

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


csr文件
  • 上传csr文件
    回到网页端,contine后,会要求我上传CSR文件。


    上传CSR
  • 创建成功后,下载,双击安装,然后在Keychain里就能看见了。如果可以展开,含专用密匙,则正常。


    创建成功
    keyChain

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

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

创建Provisioning Profile文件

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

Provisioning Profile下文将简称为Profile。

点击+添加
  • 选择类型


    选择类型

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

  • 选择App ID


    App ID
  • 选择证书

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

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

证书
  • 选择设备
    建议全部选上,这里选择就是注册设备。


    选择设备
  • 输入profile的名字,例如testAppDev。
    这名字最好统一几。因为一些无效的profile,xcode并不会自动清除,强迫症患者会觉得不爽。


    profile的名字
  • 完成profile文件的创建。
    profile文件通常不会直接从网页下载,而是在Xcode中下载。


    完成

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

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


发布证书的选择

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

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

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


Ad Hoc

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

Xcode配置

关闭Automatically manage signing
关闭自动管理
下载profile文件
下载profile
选择对应的profile文件
选择profile

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

添加新的注册设备

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

未注册设备

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

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

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

注册设备 填写信息 Xcode中获取UDID itunes中获取UDID

填入UDID后,register。


注册

更新profile文件

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

没错,testAppDev和testAppAdHoc。


编辑testAppDev
testAppDev

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


Update Profile

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

推送证书的导出

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


推送证书

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

相关文章

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

    前段时间,项目的发布证书过期了,于是整理了一番,简单总结一下吧。 初步了解 开发和发布iOS App,必须加入苹果...

  • ios申请证书

    首先介绍下常用苹果iOS证书的常用类型 iOS Development:iOS开发证书(用于真机调试测试) iOS...

  • iOS开发证书要点详解

    转自 iOS开发证书要点详解,ios证书详解 有细节修改。 首先,假设你使用过Apple设备(iMac/iPad/...

  • iOS 面试题杂记

    问答题 iOS的开发和发布签名证书有何异同?开发签名证书绑定App ID、开发者证书、以及测试设备,用于真机测试。...

  • 如何最简洁的使用iOS 开发证书 和 Profile 文件

    如果你想在iOS 设备(iPhone/iPad/iTouch)上调试, 需要有 iOS 开发证书和 Profile...

  • 命令行管理iOS证书

    笔者需要开发一套脚本,在机器上部署ios项目的签名证书。具体来讲,需要导入签名证书,删除过期证书,收集机器上的证书...

  • 极光推送 集成 使用 Token Authentication

    iOS 设备集成推送,以前需要集成开发证书和生产证书,比较麻烦,现在极光推送集成了Token Authentica...

  • IPA重签名

    1.获取一份开发者配置文件和证书 使用iOS开发者账号:如果你之前曾使用 Xcode 开发和部署过 iOS 应用,...

  • iOS安全相关 - HTTPS证书基础概念

    iOS开发中,有许多概念例如证书标准,证书编码格式,证书文件扩展名等等 证书的标注 X.509是一种常用的证书标准...

  • iOS 多个开发者 证书共享

    ios开发团队中如何多名ios开发人员共享“个人开发者证书”的问题 1.首先保证你的电脑上已经生成正常的开发者证书...

网友评论

    本文标题:iOS开发个人证书多设备的常用部署-Part1

    本文链接:https://www.haomeiwen.com/subject/npnswxtx.html