iOS Provisioning Profiles在证书有效期内变成invalid状态

今天登录iOS开发者帐号,忽然发现签名文件变为了invalid状态,感到很莫名其妙,由于咱们的开发者帐号是前两个月刚续费的,当时整理了证书,全部的都是从新生成。html

研究发现致使Provisioning Profile变“invalid”状态的缘由有两个: 一个是和Provisioning Profile相关的证书发生改变,另外一个是相关的 App ID发生改变。 这两种状况发生于本身生成相关文件的时候,Xcode管理生成的文件不会出现这种情况。app

Certificate改变

若是和签名文件相关的代码签名证书过时或者被吊销,这个签名文件就必需要从新被编辑而且和关联到一个新的证书,才能从invalid状态恢复到active状态,并被从新用于代码签名。code

App ID改变

当App ID发生改变时,好比在Xcode中打开或者关闭Capabilities中的某个功能,和App ID相关的签名文件必须被更新来相应的反应某个功能的关闭或开启。cdn

Xcode自动生成管理的签名文件会自动更新,而手动建立的必需要从新生成,进入开发者帐号Certificates, Identifiers & Profiles下,对Provisioning Profiles下的签名文件进行edit编辑,而后generate从新生成便可。htm

而我项目中就是由于开启了Capabilities下的功能致使文件状态变为invalid。blog

invalid状态的影响

由App ID改变而致使签名文件变为无效状态不会影响以前使用该文件签名过的应用程序,变为无效状态只是提示开发者必需要更新/生成新的签名文件来反映其关联的App ID的变化,以后才能再次使用它进行代码签名。开发

证书过时或吊销不会影响该证书已经签名过的任何应用程序,签名证书无效状态时必须从新生成/更新配置文件才能与新的有效证书相关联。get

在签名证书状态从“invalid”变为“active”以后,使用新的签名文件签名代码以前须要在Xcode中同步新的Provisioning Profile.同步

参考资料:developer.apple.com/library/arc…it