注册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. 初次认识:Transfer-Encoding: chunked

    Transfer-Encoding: chunked 表示输出的内容长度不能确定,普通的静态页面.图片之类的基本上都用不到这个. 但动态页面就有可能会用到,但我也注意到大部分asp,php,asp.n ...

  2. hdu4549_M斐波那契数列 解题报告

    Solution: 1.快速幂:数/矩阵 2.以证明1000000007是素数. 费马小定理: 若p是素数,gcd(a,p)=1,则a^(p-1)1(mod p). 若a^b mod p 中b很大,则 ...

  3. 对信号量Semaphore的理解与运用

    转: java笔记--对信号量Semaphore的理解与运用 java Semaphore 信号量的使用: 在java中,提供了信号量Semaphore的支持. Semaphore类是一个计数信号量, ...

  4. Failed to load because no supported source was found

    Uncaught (in promise) DOMException: Failed to load because no supported source was found? 等待解决:

  5. pyglet----画一个矩形

    这里列出一种在窗口Window中画图的程序框架.......... #-*- coding:utf-8 -*- from pyglet.gl import * def draw_rect(x, y, ...

  6. python字典遍历的几种方法

    (1)遍历key值 >>> a {'} >>> for key in a: print(key+':'+a[key])   a:1 b:2 c:3 >> ...

  7. 5个强大的Java分布式缓存框架

    在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了5 ...

  8. Django xadmin引入DjangoUeditor

    Django xadmin引入DjangoUeditor 版本:python3.6.1,Django1.11.1 DjangoUeditor下载地址:https://github.com/twz915 ...

  9. KVM使用入门

    KVM使用入门 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.KVM管理工具 1.libvirt系列 它是由REDHAT公司开发的适用于管理众多不同架构上的虚拟化技术的管理工具 ...

  10. NGUI的UIRoot会移动

    我在做一个游戏的时候,发现NGUI的UIRoot会自己移动位置,最初创建UIRoot的时候是可以随便拖动的,只要它自己移动了位置,你就拖不动它了,而且UIRoot下面的摄像机也会变成类似主摄像机之类的 ...