iOS开发-Certificates、Identifiers和Profiles详解
如果是才进入公司进行开发的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详解相关推荐
- iOS 开发:『Runtime』详解(二)Method Swizzling
本文用来介绍 iOS 开发中『Runtime』中的黑魔法Method Swizzling. 通过本文,您将了解到: Method Swizzling(动态方法交换)简介 Method Swizzlin ...
- (0054)iOS开发之制作静态库详解
最近在做Apple的IOS开发,有开发静态库的需求,下面就简单写一个静态库和一个调用静态库的例子. 静态库的编写: 1. 静态库工程的建立: Xcode New一个新的project,选择IOS下面的 ...
- iOS开发 蓝牙技术4.0详解
前言 前端时间,同学在做项目过程中遇到关于蓝牙方面的问题,今天我就给大家进行详细的进行讲解下蓝牙在iOS开发中的具体实现.在介绍蓝牙前,大家要搞清楚什么是蓝牙? 什么是蓝牙? 随着蓝牙低功耗技术BLE ...
- iOS开发-Apple开发者账号详解
证书类型 账号类型 价格 可以发布AppStore? 支持安装设备数量 申请条件 证书类型 个人账号 $99 √ 500 无限制 Ad Hoc, App Store 公司账号 $99 √ 500 DU ...
- iOS开发系列课程(08) --- 事件处理详解和手势操作
iOS中的事件分发 事件的分类 Touch Events(多点触摸事件) touchesBegan:withEvent:方法:一个或多个手指置于视图或窗口上 touchesMoved:withEven ...
- IOS开发网络篇之──ASIHTTPRequest详解
目录 目录 发起一个同步请求 创建一个异步请求 队列请求 请求队列上下文 ASINetworkQueues, 它的delegate提供更为丰富的功能 取消异步请求 安全的内存回收建议 向服务器端上传数 ...
- iOS 开发 二维码扫描详解
1.扫描二维码的控制器.m代码 #import "JDGScanQRcodeController.h" #import <AVFoundation/AVFoundation. ...
- 关于开发证书配置(Certificates Identifiers Provisioning Profiles)IOS发布(转)
原文: 点击打开链接 标记一下 引言 关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做 iOS 开发的 ...
- iOS中的HotFix方案总结详解
iOS中的HotFix方案总结详解 相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dy ...
最新文章
- 深夜,你的手机为谁开?
- 统计学习:基本常用公式(1)
- 吴恩达深度学习笔记9-Course3-Week2【机器学习策略(ML Strategy)2】
- 南昌大学c程序计算机作业,南昌大学计算机作业第二章答案
- 作为我的第一篇csdn博客吧
- vim 中的 quickfix 指令
- trailmakers未能连接服务器,Trailmakers联机版
- 自动化集成:Pipeline整合Docker+K8S
- 通用高性能 Windows Socket 组件 HP-Socket v2.2.1(增加 PULL 模型支持)
- 在html中使用javascript注意事项
- 原生js实现文字无缝向上滚动效果
- 微课|玩转Python轻松过二级(2.1节):常用内置对象
- 腾讯加持,雷军力荐,这款游戏手机要火?
- 金蝶K3 对接(直接操作数据库)
- IDEA+Java+SSM+Mysql+Bootstrap+Maven实现网上书城系统
- 神舟IV号开发板-带屏例程源码修改bug(2.8寸屏)
- word图片自动生成域
- python语言月份缩写_Python替换月份为英文缩写的实现方法
- flask中的应用工厂
- 关于在安卓M上无法申请 SYSTEM_ALERT_WINDOW 权限的解决方案