注册apple id 有1年多了,这些概念还是模模糊糊的,决定在这里总结一下。

请参阅官方文档 App Distribution Guide

code singing的作用如下:

Code signing your app allows the operating system to identify who signed your app and to verify that your app hasn’t been modified since you signed it. Your app’s executable code is protected by its signature because the signature becomes invalid if any of the executable code in the app bundle changes. Note that resources such as images and nib files aren’t signed; therefore, a change to these files doesn’t invalidate the signature.

简单的说,就是保证程序的可靠性。这个机能主要用到2个文件,一个是certificate,一个是provisioning profile。

==========================================

Certificate

证明你的开发者身份。

There are different types of signing certificates for different purposes.(针对ios开发的话,就2种,详情见下面的表格)

There’s one Mac or iOS development certificate per team member. Therefore, development certificate names contain the person’s name. All other types of certificates are owned by the team (shared by multiple team members) and so, contain the team name. Individual developers are a one-person team, and so your name and the team name are the same.

Table 11-2  Certificate types and names

Certificate type

Certificate name

Description

iOS Development

iPhone Developer: Team Member Name

Used to run an iOS app on devices and use certain technologies and services during development.

iOS Distribution

iPhone Distribution: Team Name

Used to distribute your iOS app on designated devices for testing or to submit it to the App Store.

======================================

Provisioning Profile 可以理解为 “授权文件“,在程序sign的过程中用到的就是这个文件。ios用到的provisioning profile分为3种,一种用于开发,一种用于ad hoc测试,一种用于像app store 发布。一个profile把 一个app id,一个certificate,多个devices 信息联系起来,用于对具体的ios程序进行sign。

在程序的sign过程中,不单单需要provisioning profile,还需要生成这个provisioning profile时用到的certificate,这2个文件缺一不可。


注意事项1:

申请certificate时,要提交一个.certSigningRequest 文件,这个文件是mac系统根据当前使用的电脑生成的,里面含有和私有密匙相关的信息。如果你用了从别的电脑拷贝过来的.certSigningRequest,没有用Keychain Access生成,那么生成的certificate是无法使用的,系统提示缺少私有密匙。

注意事项2:

一个开发者的team Id是不会变化的,这个ID在 distribution 的certificate中会被使用到。而对于 development类型的certificate,不会使用真正的team ID,是另外的一串字符。

注意事项3:

Provisioning Profile 没有过期之说,只有valid 和 invalid 2种状态。 与之相关的certificate如果没有过期或被 revoke,那么它就是valid的。

注意事项4:

签名用的certificate和 apns certificate 没有直接关系,他们仅仅是使用了相同的 app id.

apns的过期时间一般为13个月(distirbution),12个月(development),当证书过期后,服务器无法发送通知,只需要用相同的app id生成新的证书,放到服务器上就可以继续推送。它和签名用的cer的过期没什么关系。

签名用的cer过期或revoke,在不同的条件下,效果不同。参见https://developer.apple.com/support/certificates/

简单说,就是appstore上的app不受签名证书过期的影响,也与开发者的membership无关。用企业版证书签名的程序过期则无法使用。  而用development签名的程序和appstore上的一样,过期也可以继续运行。

注意事项5:

Distribution的cer过期后,会自动从开发者网站消失,没有renew选项。如需发布新的程序,只需要再生成一个新的cer,并更新provisioning profile。用新cer签名的app可以覆盖旧的app,对于用户来说,根本感觉不到变化。

iOS 中的Certificate,Provisioning Profile 的一些注意 (不断完善中)的更多相关文章

  1. iOS 中的Certificate,Provisioning Profile 等在code singing中用到的信息

    注册apple id 有1年多了,这些概念还是模模糊糊的,决定在这里总结一下. 请参阅官方文档 App Distribution Guide code singing的作用如下: Code signi ...

  2. IOS证书申请 PPF provisioning profile Developer Certificate

    [Error] No provisioning profile found for the selected build configuration 新来一个iPhone,真机调试的时候报错. 1.x ...

  3. iOS: 删除真机测试的Provisioning Profile后,在Code Singing中出现entitlements.plist文件无效,解决办法如下:

    问题主题:method to The entitlements specified in your application’s Code Signing Entitlements file do no ...

  4. 清理Xcode中无用的 Provisioning Profile.

    Xcode中如果添加过多个开发者账号, 慢慢就会发现 Provisioning Profile 有很多, 无用的 Provisioning Profile Xcode也不会自动删除, 想要清理的话, ...

  5. iOS Code Sign error: Provisioning profile can't be found 解决方式

    出现error的过程:在执行另外一个xcode项目重置了code sign.回到原来的项目的时候出现这个error 修复方法: targe-build settings-code signing id ...

  6. [转载]iOS Provisioning Profile(Certificate)与Code Signing详解

    原文:http://blog.csdn.net/phunxm/article/details/42685597 引言 关于开发证书配置(Certificates & Identifiers & ...

  7. iOS Provisioning Profile(Certificate)与Code Signing详解

    引言 关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做 iOS 开发的同学没少被折腾.对于一个 iOS ...

  8. 【转】iOS Provisioning Profile(Certificate)与Code Signing详解 -- 待看

    原文网址:http://blog.sina.com.cn/s/blog_82c8198f0102vy4j.html 引言 关于开发证书配置(Certificates & Identifiers ...

  9. 【转】 iOS Provisioning Profile(Certificate)与Code Signing详解

    原文:http://blog.csdn.net/phunxm/article/details/42685597 引言 关于开发证书配置(Certificates & Identifiers & ...

随机推荐

  1. MyEclipse 检出新项目后,如果项目名称签名有个红色感叹号

    MyEclipse 检出新项目后,如果项目名称签名有个红色感叹号,那么看 Problems中的错误提示(如果找不到Problems窗口,点 菜单栏的 Window——Reset Perspective ...

  2. laravel redis 删除指定前缀的 key

    // 前缀 $prefix = 'abc'; // 需要在前面连接上应用的缓存前缀 $keys = app('redis')->keys(config('cache.prefix') . $pr ...

  3. WCF开发实战系列三:自运行WCF服务

    WCF开发实战系列三:自运行WCF服务 (原创:灰灰虫的家 http://hi.baidu.com/grayworm)上一篇文章中我们建立了一个WCF服务站点,为WCF服务库运行提供WEB支持,我们把 ...

  4. CentOS 6.5 升级内核

    Docker需要3.10以上内核支持,Centos6.5 默认内核为2.6.所以手动编译安装3.10内核. 查看当前系统内核版本 [root@gu ~]# uname -r2.6.32-431.el6 ...

  5. P3594 [POI2015]WIL-Wilcze doły

    P3594 [POI2015]WIL-Wilcze doły 题目描述 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段连续区间,使得 ...

  6. parted分区工具用法

    parted分区工具用法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 随着生产环境中数据量的增大,我们对硬盘的容量也有很大的需求,当硬盘的容量大于2T(工业上的最大磁盘2.2TB ...

  7. Gym - 100085G - GCD Guessing Game

    原题链接 题意一个数字x在1-n之间,现在猜数字,每次猜一个数字a,告知gcd(x, a)的答案,问最坏情况下需要猜几次 分析 考虑素数.当猜的数为一组素数的乘积时,就可以把这些素数都猜出来.那么答案 ...

  8. 旅行商问题(TSP)、最长路径问题与哈密尔顿回路之间的联系(归约)

    一,旅行商问题与H回路的联系(H回路 定义为 哈密尔顿回路) 旅行商问题是希望售货员恰好访问每个城市一次,最终回到起始城市所用的费用最低,也即判断图中是否存在一个费用至多为K的回路.(K相当于图中顶点 ...

  9. Bleve代码阅读(二)——Index Mapping

    引言 Bleve是Golang实现的一个全文检索库,类似Lucene之于Java.在这里通过阅读其代码,来学习如何使用及定制检索功能.也是为了通过阅读代码,学习在具体环境下Golang的一些使用方式. ...

  10. Java SE之向上转型与向下转型

    package object; //向上转型-向下转型 public class Up_Down_convert { /* 向上转型 * * 1.上转型对象可以使用和操作子类继承或者重写的方法 * 2 ...