文章目录

    • 1 创建苹果开发者账号
    • 2 创建`Certificates`、`APP IDs`、`Provisioning Profile`
      • 自动创建
      • 手动创建
        • 创建`Certificates`证书
        • 创建`App IDs`应用标识
        • 添加`Devices`测试设备
        • 创建`Provisioning Profiles`配置文件
    • 3 APP打包
  • 扩展
    • 如何将开发者证书导出给其他人员使用(`Profile` + `p12`)
    • 如何从本地导出包含公私钥的P12证书?
    • 证书文件`Development`、`Ad Hoc`、`Distribution`、区别
    • 参考

1 创建苹果开发者账号

  • 账号类型

    账号类型 费用 应用审核周期 应用上架 特点
    个人 99$ 一周 仅支持AppStore 1、只能有一个开发者
    2、装机量100台
    3、需提供支持Visa信用卡
    公司 99$ 半个月以上 仅支持AppStore 1、允许多个开发者
    2、装机量100台
    3、需提供信用卡、公司地址、营业执照编号、授权许可
    4、需要申请邓白氏编码
    企业 299$ 半个月以上 支持AppStore和企业内部署 1、装机量不限制
    2、可发布内部APP
    3、提供代码级别技术支持
    4、需申请邓白氏码
  • 申请地址

    账号类型 申请地址
    个人和公司 https://developer.apple.com/programs/
    企业 https://developer.apple.com/programs/enterprise/
  • 补充说明

    1. 公司和企业账号需要先申请邓白氏编码,免费,需提供公司的相关资质,可在苹果官网申请;邓白氏编码申请
    2. 公司开发者支持多账号管理,允许添加三种角色的账号:
      • 超级管理员(Agent):即申请到的公司开发者账号,权限最高,可以管理开发者和AppStore中应用。
      • 管理员(Admin):可对应用进行一些配置,添加证书,手机udid等。
      • 普通管理员(Member):普通开发者,通过超级管理员或管理员邀请拥有Apple ID账号的人可成为普通管理员,只能下载和使用证书、真机调试、发布到蒲公英,不能上架到AppStore

2 创建CertificatesAPP IDsProvisioning Profile

Certificates证书是用来给应用程序签名和验签的,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的, 未经修改的。在Xcode Build Setting的Code Signing Identity中,你可以设置用于为代码签名的证书。 代码签名正是使用这种基于非对称秘钥的加密方式,用私钥进行签名,用公钥进行验证

自动创建

Xcode8 之后引用Automatic manage signing 。XCode会自动为我们创建证书及其对应的Profile文件无需手动操作。

1)XCode中登陆开发者账号

2)设置主TARGET签名配置

选中主TARGETS—>Signing&Capabilities—>Signing

  • 勾选Automatic manage signing自动管理签名
  • Team选择我们登陆的开发者账号
  • Bundle Identifer填写我们的应用标识(唯一)

设置好以后刷新Xcode会自动在开发者平台创建Certificates证书、同时在本地创建App IDsProvisioning Profile(内部关联的Devices是开发者平台添加的所有设备,内部关联的Certificates是开发者平台所有符合的开发者证书,包含刚才XCode自动创建的证书)。

创建结束以后,我们在开发者平台Certificates中查看到XCode自动为我们创建的证书(包含公钥的cer文件)

同时在本地的钥匙串访问中可以查看到XCode自动创建的包含了Certificates及其对应的私钥的证书,XCode在编译程序时候就是使用该证书中的私钥进行签名。


同样在我们本地的 /Users/你的设备登陆名/Library/MobileDevice/Provisioning Profiles 路径下生成对应的Provisioning Profile文件

至此通过XCode自动创建开发者证书完成,我们可以在XCode中运行程序安装到Profile配置文件中包含的设备上进行调试


注意:

XCode自动生成的Provisioning Profile配置文件是属于XCode自动管理的,不支持配置为手动签名,因此不可共享给同开发组其他伙伴使用,如果需要共享则使用下面介绍的手动创建App IDs,Provisioning Profile

手动创建

上面介绍了Apple开发者的CertificatesApp IDsProvisioning Profile通过XCode自动生成,优点是无需我们手动创建和管理证书,同时也存在无法共享Provisioning Profile配置文件的缺点。如果我们想在同开发组内多个开发人员之间共享私钥和Profile配置文件如何操作呢?这就需要我们在开发者平台手动创建我们的AppIDsProvisioning Profile.

注意

这里没有提及手动创建Certificates证书,原因是XCode自动创建的该证书可通用,我们只需要在本地钥匙串访问中将XCode自动创建的Certificates证书对应的包含私钥的证书导出为p12格式,连同手动创建的Provisioning Profile包含该Certificates公钥证书配置文件一起发送给伙伴即可。当然你也可以不使用XCode自动为我们创建的Certificates证书,而是亲力亲为,那么就开始吧…

创建Certificates证书

1. 准备证书签名请求文件(简称CSR文件)

创建证书时, 需要上传csr文件(certSigningRequest), 这个csr文件需要在你电脑打开钥匙串, 工具栏左上角的

钥匙串访问 —> 证书助理 —> 从证书颁发机构请求证书,

然后保存到磁盘即可得到这个csr文件, 该文件存有设备信息, 通过这个csr文件制作的Certificates证书, 安装之后在本机才能获取到私钥(小钥匙图标)。

1-1)打开电脑里面的钥匙串访问

1-2)选择证书助理—>从证书颁发机构请求证书

1-3)填写用户邮件地址和常用名,存储到磁盘

1-4)生成的证书签名请求文件

2. 生成证书(Certificates)

创建一个开发版的证书, 上传csr文件, 完成后下载该证书, 该证书为.cer文件. 双击这个文件, 会在你的钥匙串中看到这个证书, 点击证书左边的三角, 下边会出现一行, 这一行有小钥匙图标, 这是私钥。可以导出为 p12文件,就可以把这个p12文件和Profile配置文件一起分发给其他小伙伴使用, 这样他们在自己的电脑上双击p12文件, 自己的钥匙串也会多一个证书, 就可以进行开发了(生产证书申请流程和开发证书一致);

注意

  • 需要从本机的钥匙串访问中导出这个包含私钥的p12证书发送给小伙伴使用,而不是从开发者平台直接下载cer证书,开发者平台下载的cer格式证书仅包含公钥无法使用。
  • 一般我们将本机导出包含私钥的p12证书文件连同包含该私钥对应的CertificateProvisioning Profile配置文件一同发给伙伴使用。单独发送一个p12证书(缺少对应配置文件),或者单独一个Profile配置文件(缺少p12证书)都无法正常的进行开发。

上一步我们创建了证书签名请求文件,接下来我们利用该文件生成证书。

2-1)点击+可进行添加证书:

2-2)选择好环境后继续需要上传之前创建的.certSigningRequestCSR证书请求文件继续下一步。

2-3)生成对应的cer证书,在Certificates列表中可以看到,我们将生成的证书下载下来

2-4)双击下载的Certificates证书安装到本地(可见证书链上多了一个证书,展开的小钥匙的私钥)

创建App IDs应用标识

Identifiers 标识决定那个APP可以真机调试

1)选择Identifiers—>点击+新建

2)选择App IDs
3) 填写应用名称Bundle Id,勾选应用需要支持的服务(比如推送通知、钱包等等,根据需要勾选)

4)继续下一步点击注册即可。

添加Devices测试设备

devices 决定哪台设备可以真机调试

1)进入Apple Develop平台,选择Devices点击的+

2)填写设备名称(可随意)和设备UDID,继续下一步点击注册即可。

PS:设备UDID获取,可通过ITunes/ITools获取,或者从Xcode中:Window—>Devices and Simulators获取


注意:udid需要双击全选复制,防止复制不全!!

创建Provisioning Profiles配置文件

Provisioning Profile 应用配置描述文件。通过苹果开发者账号创建,其中包含了 certificates证书App ID设备

试想一下:如果要我们打包或者直接在真机上运行一个应用程序,出于安全考虑,我们需要使用证书来对这个App进行签名,用来标识这个应用程序是合法的、安全的、完整的等等。然后需要指明它的App ID,并且验证Bundle ID是否与其一致;再次,如果是真机调试,需要确认这台设备能否用来运行程序。而Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件就可以了。而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里

该描述文件有两种

  • Development:ios app development是真机调试的描述文件
  • Distribution
    • Ad Hoc :用于安装你的App到有限的注册设备上调试
    • App Store:用于发布你的App到AppSotre上

1)进入Apple Develop开发者平台,选择Provisioning Profiles点击+

2)选择环境

3)选择关联的App ID应用标识符

4)选择关联Certificates证书(可多选)

注意

  • Distribution(发布环境的)描述配置文件只能关联一个发布证书

    5)选择关联Devices设备(发布环境下的App Store环境不需要关联dvices)

    6)填写描述配置文件的名称

    7)点击继续生成了对应的Provisioning Profile文件了(这里创建了三个环境分别为:Dev、Hoc、AppStore的)

8)如何使用Provisioning Profile文件?

Provisioning Profile配置文件主要用于手动管理签名,而非使用XCode的Automatically manage signing自动管理签名功能,从而实现多人可共享私钥+Provisioning Profile配置文件进行开发。

我们将不同环境的Profile配置文件下来到本地,可在XCode中使用手动方式来管理签名(可手动下载,然后双击加在到XCode中,或者在XCode的Signing—>Provisioning Profile—>Download Profile下载),XCode加载后可在本地的/Users/你的设备登陆名/Library/MobileDevice/Provisioning Profiles路径下查看到

具体使用步骤如下:

选择主TARGET—>Signing&Capabilities—>Signing

  • 不要勾选Automatically manage signing手动管理签名
  • Bundle Identifier:填写Profile配置文件关联的App ID
  • Provisioning Profile:选择我们下载的所需环境的Profile文件即可
  • Signing Certificate:签名证书必须已经安装在本地了且是被包含在Profile配置文件中的Certificate对应的私钥证书(如果是共享给伙伴,则需要将本地包含私钥的证书导出为p12格式+对应的Profile文件一起发送出去)

    至此通过XCode自动创建及手动创建Apple开发者证书等一系列配置文件及来实现XCode自动管理签名和通过手动管理签名的方式已经结束,两种方式的优缺点在上面也已经展示出来,接下来我们开始使用XCode进行开发及打包。

3 APP打包

经过上述证书等一系列配置文件申请结束,接下来我们就可以针对App进行打包或发布

具体步骤:

  • 选择Product—>Archive XCode会对代码进行一次构建操作等待片刻即可

  • 构建结束之后跳出一个页面我们选择分发App

  • 下一步选择分发方式(我们这里选择Ad Hoc打包给测试人员安装到指定设备上进行测试,如果是发布到市场选择App Store Connect)

  • 下一步应用瘦身选择需要的即可

  • 继续下一步填写应用配置信息

  • 下一步选择发布的Certificate证书和Profile配置文件(Distributiion(发布环境)的Certificate证书我已经创建并且对应的私钥证书已经安装在本地,我这里Profile使用的是Ad Hoc,)

  • 下一步开始进行打包等待片刻即可,打包结束我们选择导出即可

    最后我们可通过Itunes或者Itools将ipa安装包安装到指定设备上即可。

扩展

如何将开发者证书导出给其他人员使用(Profile + p12)

如果想实现将一套开发者证书供同开发组内多个开发人员使用

  1. 创建Provisioning Profile配置文件

    首先我们要通过开发者平台创建所需环境(Dev/Ad Hoc/App Store)的Profile配置文件(不可使用XCodeAutomatically manage signing自动管理签名生成的Profile文件),并关联对应的CertificatesAppIDDevices然后将其下载备用。

  2. 本地导出P12证书文件

    注意

    • P12证书文件不是随意导出,必须是Profile配置文件中关联的Certificates中任意一个且具备该Certificate对应私钥的本地已安装的证书才可作为导出证书对象

      那么该导出证书对象中的私钥是从哪里来的?公钥上面说了一般是我们从开发者平台下载的Ceritficate中就包含了,而其对应的私钥是我们创建Certificate时候通过CSR文件生成,因此我们只需通过CSR创建完成Ceritficate后下载该公钥证书安装即可,本地就会生成一个包含了该公钥和其私钥的证书。

      但是!如果本地没有Certificate公钥证书对应的私钥,我们是无法导出p12证书给他人使用的,此时我们只能接受他人的P12证书来使用。

    步骤:

    从本地的钥匙串访问—>登陆—>我的证书列表中选择Profile中关联包含任意一个Certificate公钥和私钥的证书文件,右键导出即可。

  3. 将下载的Profile和P12文件一起发送给他人即可

  4. 其他开发者收到后,先安装P12证书文件,然后在Xocde项目中Signing配置使用手动管理签名,导入该Profile即可使用。

具体使用参考上面如何使用Provisioning Profile文件?

如何从本地导出包含公私钥的P12证书?

进入钥匙串访问—>登陆—>我的证书 选择我们目标证书,右键导出为(.p12)输入密码即可



生成了包含公私钥的p12证书,发给小伙伴安装即可

证书文件DevelopmentAd HocDistribution、区别

  • Development:该类型证书适用于真机在线调试(需要包含可调试的Devices),不可用于打包

    使用场景:

    例如你的Tester(团队测试人员、客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序“灌”进去,那有Development开发证书就够了。

  • Ad Hoc:该类型证书适用于Archive(离线打),安装至手机调试(需要包含可调试的Devices)

    使用场景

    如果Tester人员的iOS设备不能直接让你灌程序,那怎么办?你必须打包(Archive)你的程序,然后发给你的Tester,让他通过itunes进行安装,那就需要Ad hoc证书了。

  • Distribution:该类型证书适用于将App分发至AppStore。

    使用场景

    如果你的App经过你的Tester人员测试通过,需要发布到AppStore供别人下载使用,此时就需要Distribution证书了。

参考

  • 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
  • 最新xcode打包IPA(完整详细图文)

IOS开发者证书申请及打包步骤相关推荐

  1. ios开发者证书申请

    ios开发者证书申请 要申请IOS开发者证书首先必要要满足两个条件: 1.Mac电脑,要是没有的话在windows下安装一个虚拟机也是可以的.(虚拟机安装) 2.开发者账号(收费) 以上都准备好了就开 ...

  2. 2016最新iOS开发者证书申请及安装教程

    作者本人是名安卓开发者,年前入手了一台MacBook pro,这段时间不是很忙,就研究了一下iOS开发,苹果的封闭给我们程序猿们埋下了许多大坑,不仅是金钱上还是心灵上:想做iOS开发首先少不了一台Ma ...

  3. IOS APP 证书申请 及 打包ipa包

    ios发布app前的准备 APPID(又称套装ID,应用ID,BundleID,包名) iOS发布证书(p12) iOS发布描述文件(mobileprovision) 证书私钥密码(生成p12文件前会 ...

  4. 2023年苹果IOS开发者证书申请(已实测准确)

    一.创建苹果开发者账号 苹果开发者官网:https://developer.apple.com/ 注册苹果账号apple id 开启双重认证,需在一台IOS手机/iPad操作 在App Store下载 ...

  5. 申请ios开发者证书到获取p12文件及profiles文件

    申请ios开发者证书,用于Hbuildx打包ios app 注册ios开发者 生成证书,标识符,描述文件 申请证书 mac系统申请证书 申请identifiers(因为新建Profiles文件是需要用 ...

  6. IOS证书申请和打包流程

    IOS证书申请和打包流程 参考资料: iOS 证书申请和使用详解 iOS完整的证书申请和打包过程 iOS开发证书与配置文件的使用 iOS 证书详解 iOS导出4个ipa包的含义 苹果开发者账号中,测试 ...

  7. iOS证书申请和打包过程

    本篇文章主要讲的是H5 IOS打包所具备的条件,主要是利用appuploade来操作 [APPupload下载地址](http://www.smzy.com/smzy/down379718.html) ...

  8. ios 开发者账号申请流程 最新

    申请账号前,你需要先确认你的目的,是发布应用,iOS 开发者账号分为个人,公司,政府组织 企业  .申请后需要苹果公司审核,信息一致后可以缴费开通.时间周期大概1-2个星期.注意事项就是如果你的名称( ...

  9. ios 开发者证书付费三种类型区别

    ios 开发者证书付费三种类型区别 苹果开发者账号分为 个人(individual),公司(company),企业(enterprise)三种类型. 1.个人开发者账号: (1)费用:99美元每年. ...

最新文章

  1. 海康开放平台音视频方案对比(rtsp、http-flv、hls、rtmp)
  2. reactjs组件通讯:子组件传递数据给父组件
  3. REST是什么?如何实现RESTful?
  4. ImageNet又被Long-Short Transformer 霸榜!
  5. 布式事务实践 解决数据一致性 Spring事务机制
  6. java 局部内部类
  7. [Excel] 数据透视表
  8. php fseek函数,php fseek函数怎么用 - fseek
  9. 关于linux文件系统出现脏数据修复的思路
  10. unity3d的下载与安装
  11. Linux中_countof函数,Linux电源管理(8)_Wakeup count功能
  12. 利用.sym跨平台解析iOS符号
  13. matlab如何离散椭圆方程,给出一些椭圆上离散的点的横纵坐标,怎么用matlab拟合出椭圆方程...
  14. 海思平台项目经验总结
  15. org.hibernate.hql.internal.ast.QuerySyntaxException错误原因
  16. 50道简单家常菜~~~~~让你得意厨房
  17. WINDOWS性能监控器的监视以及邮件预警配置
  18. 三原色光模式(RGB color model)的颜色融合,C#代码
  19. 天猫商城源代码变更对爬虫的影响
  20. 《北京爱情故事》中《滴答滴》简谱

热门文章

  1. 算法设计与分析——蒙特卡罗算法判定两个集合是否相等
  2. 抖音小店大量封店,你中招了吗?
  3. 新入职应该注意的事情
  4. (转)贴片电容封装尺寸
  5. linux nfs 协议,Linux 以 NFS 协议挂载 ReadyNAS 共享区
  6. 操作系统——进程同步
  7. 从“名将之路”到“写作之路”
  8. Bill课堂【二】——头脑风暴
  9. 分数优先遵循志愿php源码_一本志愿:分数优先遵循志愿
  10. 2020三校生英语计算机试卷,【收藏】2020年三校生高考英语听力试运转试卷来啦!...