去年做ondine时,被iOS的证书搞得很是头大,做完了之后感觉一片混乱,印象也不是很深。最近又发布了meditashayne,个人的第二个App,也就重温了一下证书的一些相关操作。这一次的理解比较深了,总结了一些基本要点如下:

  首先要在电脑上的Keychain里生成一个CertificateSigningRequest.certSigningRequest文件,这个文件是接下来所有证书操作的基础。这个certSigningRequest文件我理解为是电脑生成的一段加密的关于自身的信息,这段信息精确能辨识某一台电脑,它被做在开发或者发布的证书里面后,这个证书就表示能授权这部电脑build开发版本或发布版本等操作。这个文件要妥善保存,因为重新生成一次的话,内容可能就会变了。

  接下来就是在developer.apple.com的Member Center里进行的证书相关操作了,这些操作都在Certificates, Identifiers & Profiles里面,主要分4个部分:

(1)、Certificates:

其实这个便是传说中的证书了,它的后缀名是.cer。Certificate有开发者、发布或者推送等各种类型,不同类型的证书能授权电脑做不同类型的操作。

制作Certificate的过程需要上传certSigningRequest文件。

做完Certificate后,要将它下载下来,并安装在Keychain中,这样便完成了第一步的授权操作。

(2)、Identifiers:

Identifiers表示各种各样的ID,用来唯一标识某个程序或某项功能,其中跟App有关的便是AppID。AppID用来唯一标识某个App,在进行下一步操作前,你要先为你的App注册一个AppID。

AppID中最重要的是Bundle ID,这个便是AppID的详细内容,一般将它定义为“com.域名.App名”的格式,比如meditashayne的Bundle ID便是“com.shayneyeorg.meditashayne”。

同时Xcode里面的Bundle Identifier也需要和这个Bundle ID保持一致,这样方能正确对应上。

(3)、Devices:

设备,包括iPhone、iPad、Apple Watch等各种设备,你要把你开发工程中真机调试需要用到的设备先添加到这里面。

添加设备的时候,主要是要记录设备的UDID。添加的设备并不表示以后必须得使用它,只是将它添加在这里可供以后选择使用。

(4)、Provisioning Profiles:

Provisioning Profiles是最后一步了,从字面上来理解它是授权文件的意思,文件的后缀名是.mobileprovision,这个文件便是我们平时开发过程中所说的“证书”了。

Provisioning Profile的意义是“授权某一台电脑在某几部设备上,对某个App进行某种操作”。

所以在制作Provisioning Profile的过程中,你需要选择这个Provisioning Profile文件的操作类型(开发或者发布),选择这个Provisioning Profile文件使用的证书和授权的电脑(Certificates),选择这个Provisioning Profile文件操作的App(Identifiers),选择这个Provisioning Profile文件允许操作的设备(Devices),选择完这些之后,便可生成对应的Provisioning Profile文件了。

这个文件是日常开发中经常要操作到的文件,需要把它的命名规范好,一般我会用文件的操作类型和App名称合起来作为文件名。比如meditashayne的开发者Provisioning Profile文件,我将它命名为“Dev_Mds.mobileprovision”,发布Provisioning Profile文件我将它命名为“Dis_Mds.mobileprovision”。

(5)、完成了这些操作后,你在Xcode里登陆对应的Apple ID,便可在Preferences里下载对应的Provisioning Profile文件,进行对应的操作了。

  参考文档:

  https://segmentfault.com/a/1190000004144556

  http://www.cocoachina.com/bbs/read.php?tid=330302

所闻所获5:关于iOS的证书的更多相关文章

  1. iOS 开发 证书总结 开发证书和生产证书的区别

    IOS开发 证书总结 开发者证书   ------>>  开发证书是你在真机推送时 用得, 生产证书是app 上架之后 推送给用户用的 首先你必须获得apple开发者证书,上图这个文件就是 ...

  2. iOS开发之 XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效)

    参考:http://mobile.51cto.com/iphone-455500.htm XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效) 前提:设备已经越狱 目前在XCode上开发 ...

  3. IOS开发证书变成“此证书的签发者无效”解决方法

    IOS开发证书全部变成无效,如下图  打包提示错误  解决方法: 1. 下载https://developer.apple.com/certificationauthority/AppleWWDRCA ...

  4. ios 企业证书 ipa 重新签名发布

    提示:暂时不能用了,企业证书滥用 ios 企业证书 ipa 重新签名发布 1. 应用场景 当前有一个 未用企业证书签名的 ipa 文件,默认是不可以直接安装到设备上的:我们需要用企业版证书签名: 当前 ...

  5. 申请iOS开发者证书

    来源:http://blog.csdn.net/htttw/article/details/7939405 申请iOS开发者证书 今天我们介绍如何申请iOS开发者证书(99刀): 1. 打开 http ...

  6. iOS 此证书的签发者无效

    1.先检查Apple Worldwide Developer Relations Certification Authority Intermediate Certificate证书是否过期,该证书过 ...

  7. iOS开发证书都显示“此证书的签发者无效”,更新WWDR Certificate证书后还是显示无效

    1.首先iOS开发证书显示"此证书的签发者无效".是因为WWDR Certificate证书过期导致的,须要更新WWDR Certificate证书! 1)下载最新WWDR Cer ...

  8. iOS开发证书和配置文件的使用

    提示:之前只是根据网上的流程完成了iOS项目的发布过程,对于证书和配置文件仍是一头雾水,这里参照别人的文章,简单了解一下,毕竟以后用的着. 这里有几个问题: 什么是iOS证书,它是如何与app应用关联 ...

  9. iOS监听模式系列之iOS开发证书、秘钥

    补充--iOS开发证书.秘钥 iOS开发过程中如果需要进行真机调试.发布需要注册申请很多证书,对于初学者往往迷惑不解,再加上今天的文章中会牵扯到一些特殊配置,这里就简单的对iOS开发的常用证书和秘钥等 ...

随机推荐

  1. [转载]Vertica “ERROR: Too many ROS containers exist”

    最近在用Vertica的时候碰到一个问题,Vertica在运行了一段时间后总是出现类似下面的错误 1: java.sql.SQLException: [Vertica][VJDBC](5065) 2: ...

  2. iOS8 Core Image In Swift:更复杂的滤镜

    iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸 ...

  3. Objective-C(十八、谓语使用及实例说明)——iOS开发基础

    结合之前的学习笔记以及參考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结.知识点一直在变,仅仅是作为參考,以苹果官方文档为准~ 十八.谓语的使用及 ...

  4. Swift学习之函数和简单地控件的创建

     今天还是重复昨天做的事情--敲代码,但唯一的不同就是所学的知识不同了,我们又进一步往深得层次学习了,感觉越来越有意思了,虽然临近结束了看着大家积极性越来越低了,但是我知道我不能这样,我要比别人付出的 ...

  5. 使用maven编译的时候提示 maven-source 1.3 中不支持注释请使用 -source 5 或更高版本以启用注释的错误。

    在编译的模块的pom文件中加上 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins ...

  6. ASP.NET网站与ASP.NET应用程序的区别

    我们使用VS做ASP.NET的时候,可以选择新建ASP.NET应用程序,同时也可以新建ASP.NET网站,两者有什么具体区别呢?今天真是很幸运,比别人多上了老师一节课,讲的是这两者之间的一些区别.我学 ...

  7. SQL Server 存储过程之基础知识(转)

    什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句. 那为什么要用存储过程呢?1.存储过程只在创造时进行编译, ...

  8. IOS 手机端搜索硬件设备 --- 物联网

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<errno.h> #i ...

  9. OpenCV——CvMatchShapes函数

    功能:根据计算比较两张图像Hu不变距(函数返回值代表相似度大小,完全相同的图像返回值是0,返回值最大是1) double cvMatchShapes(const void* object1, cons ...

  10. (转)Ubuntu中让终端对于历史输出的内容保持足够长

    原地址:http://www.crifan.com/ubuntu_terminal_make_retain_long_enough_history_output_content/ Ubuntu下用终端 ...