如果是才进入公司进行开发的iOS程序猿来说人难免会对苹果的证书、配置文件,尤其有的需要重头开始的公司来说,最简单的来说真机调试是免不了和这些东西打交道的,有的时候赶时间做完了可能心里也犯嘀咕,本文根据个人经验对Certificates、Identifiers和Profiles做下简单的介绍,不过默认你已有苹果账号,如果你还在学习的路上,将来有一天你也会有的,开始正题吧:

1.登录苹果官网,苹果在WWDC15之后对网站进行了改版,以下是最新的截图:

2.三合一的管理模式:

3.管理iOS Apps,这个就是网上有的时候会看到的图片,隐藏了账号信息;

如果进入了这里就到了文章的重点,接下来就解释这些选项的作用(本文链接:http://www.cnblogs.com/xiaofeixiang,iOS技术交流群:228407086)

Certificates(证书)

证书主要分Development和Production两类,Development证书用来开发和调试应用程序,Production主要用来分发应用程序,不同的种类的证书功能不一样:

Development:

  • App Development (1年):用来开发和真机调试应用程序。
  • Push Development (1年):用来调试Apple Push Notification

Production:

App Store and Ad Hoc (3年):发布App Store和AdHoc的应用程序;

Apple Push Notification service SSL (Production)(1年):在发布版本中使用Apple Push Notification;

VoIP Services Certificate

Pass Type ID Certificate

Website Push ID Certificate

标注过的证书都用过,未标注本人没有使用过,不敢误人子弟。在Xcode的Code Signing中,可以设置用于为代码签名的证书。

小贴士:

我们申请一个Certificate之前,需要先申请一个Certificate Signing Request (CSR) 文件,如图所示:

这个过程中实际上是生成了一对公钥和私钥,保存在自己的Mac的Keychain中。代码签名正是使用这种基于非对称秘钥的加密方式,用私钥进行签名,用公钥进行验证。图片来源网上,原理大同小异,在自己Mac的keychain的login中存储着相关的公钥和私钥,而证书中包含了公钥。你只能用私钥来进行签名,所以如果没有了私钥,证书也就没有意义。因此在申请完证书时,最好导出并保存好你的私钥。当你的团队有新成员或其他设备需要共享证书时,用同一私钥就可以。私钥保存在自己的Mac中,而苹果生成的Certificate中包含了公钥。当用自己的私钥对代码签名后,苹果就可以用证书中的公钥来进行验证,确保是本人对代码进行了签名,而不是被冒充,确保代码的完整性。

Identifiers(标识)

Identifiers分为六种,App IDs,Pass Type IDs,Website Push IDs,iCloud Containers,App Groups和Merchant IDs,其中App IDs是最常用的,其他的五种没有使用过,重点说下App IDs,App IDs用于标识一个或者一组App,App ID应该是和Xcode中的Bundle ID是一致的或者匹配的。App IDs主要有以下两种:

  • Explicit App ID:唯一的App ID,这种App ID用于唯一标识一个应用程序,例如com.cnblogs.xiaofeixiang,标识Bundle ID为com.cnblogs.xiaofeixiang的程序。
  • Wildcard App ID:通配符App ID,用于标识一组应用程序。例如*可以表示所有应用程序,而com.cnblogs.*可以表示以com.cnblogs开头的所有应用程序。

每创建一个App ID,我们都可以设置该App ID所使用的APP Services,也就是其所使用的额外服务,如下图所示可以进行勾选:

Devices(设备)

随着苹果帝国的发展,现在设备类型分为Apple TV,Apple  Watch,iPad,iPhone和iPod Touch五类。Devices中包含了该账户中所有可用于开发和测试的设备。 每台设备使用UDID来唯一标识。每个账户中的设备数量限制是100个。Disable 一台设备也不会增加名额,只能过了一年之后才能删除,所以如果机器比较多慎用。

Profiles (配置文件)

配置文件,分为两种,一种是Development,另外一种是Distribution,如下图:

Provisioning Profile文件包含了上述的所有内容:证书、App ID、设备,我们先思考两秒,如果没有配置文件我们如何在真机上运行一个应用程序:

①通过证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的。。

②指明它的App ID,并且验证Bundle ID是否与其一致;

③如果是真机调试,需要确认这台设备能否用来运行程序;

Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件,而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里。团队的Provisioning Profile中包含了该Provisioning Profile对应的App ID,可使用的证书和设备,通过Provisioning Profile打包程序拥有与之相应的证书,并且是将App ID对应的程序运行到Devices中包含的设备上去。

本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4564585.html,如需转载请自行联系原作者

iOS开发-Certificates、Identifiers和Profiles详解相关推荐

  1. iOS 开发:『Runtime』详解(二)Method Swizzling

    本文用来介绍 iOS 开发中『Runtime』中的黑魔法Method Swizzling. 通过本文,您将了解到: Method Swizzling(动态方法交换)简介 Method Swizzlin ...

  2. (0054)iOS开发之制作静态库详解

    最近在做Apple的IOS开发,有开发静态库的需求,下面就简单写一个静态库和一个调用静态库的例子. 静态库的编写: 1. 静态库工程的建立: Xcode New一个新的project,选择IOS下面的 ...

  3. iOS开发 蓝牙技术4.0详解

    前言 前端时间,同学在做项目过程中遇到关于蓝牙方面的问题,今天我就给大家进行详细的进行讲解下蓝牙在iOS开发中的具体实现.在介绍蓝牙前,大家要搞清楚什么是蓝牙? 什么是蓝牙? 随着蓝牙低功耗技术BLE ...

  4. iOS开发-Apple开发者账号详解

    证书类型 账号类型 价格 可以发布AppStore? 支持安装设备数量 申请条件 证书类型 个人账号 $99 √ 500 无限制 Ad Hoc, App Store 公司账号 $99 √ 500 DU ...

  5. iOS开发系列课程(08) --- 事件处理详解和手势操作

    iOS中的事件分发 事件的分类 Touch Events(多点触摸事件) touchesBegan:withEvent:方法:一个或多个手指置于视图或窗口上 touchesMoved:withEven ...

  6. IOS开发网络篇之──ASIHTTPRequest详解

    目录 目录 发起一个同步请求 创建一个异步请求 队列请求 请求队列上下文 ASINetworkQueues, 它的delegate提供更为丰富的功能 取消异步请求 安全的内存回收建议 向服务器端上传数 ...

  7. iOS 开发 二维码扫描详解

    1.扫描二维码的控制器.m代码 #import "JDGScanQRcodeController.h" #import <AVFoundation/AVFoundation. ...

  8. 关于开发证书配置(Certificates Identifiers Provisioning Profiles)IOS发布(转)

    原文:  点击打开链接 标记一下 引言 关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做 iOS 开发的 ...

  9. iOS中的HotFix方案总结详解

    iOS中的HotFix方案总结详解 相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dy ...

最新文章

  1. 深夜,你的手机为谁开?
  2. 统计学习:基本常用公式(1)
  3. 吴恩达深度学习笔记9-Course3-Week2【机器学习策略(ML Strategy)2】
  4. 南昌大学c程序计算机作业,南昌大学计算机作业第二章答案
  5. 作为我的第一篇csdn博客吧
  6. vim 中的 quickfix 指令
  7. trailmakers未能连接服务器,Trailmakers联机版
  8. 自动化集成:Pipeline整合Docker+K8S
  9. 通用高性能 Windows Socket 组件 HP-Socket v2.2.1(增加 PULL 模型支持)
  10. 在html中使用javascript注意事项
  11. 原生js实现文字无缝向上滚动效果
  12. 微课|玩转Python轻松过二级(2.1节):常用内置对象
  13. 腾讯加持,雷军力荐,这款游戏手机要火?
  14. 金蝶K3 对接(直接操作数据库)
  15. IDEA+Java+SSM+Mysql+Bootstrap+Maven实现网上书城系统
  16. 神舟IV号开发板-带屏例程源码修改bug(2.8寸屏)
  17. word图片自动生成域
  18. python语言月份缩写_Python替换月份为英文缩写的实现方法
  19. flask中的应用工厂
  20. 关于在安卓M上无法申请 SYSTEM_ALERT_WINDOW 权限的解决方案

热门文章

  1. 队列学习笔记 顺序队列
  2. Linux基础知识:正则表达式
  3. SunDay天气——开放源代码
  4. 构建布局良好的windows程序
  5. Boost 编译链接
  6. Exchange-批量创建通讯组邮箱
  7. 机器学习笔记:线性规划,梯度下降
  8. codeforces 700B Connecting Universities
  9. LoadRunner监控mysql利器-SiteScope(转)
  10. 在EditText前面添加一个搜索的小图片