今天登錄iOS開發者帳號,忽然發現簽名文件變爲了invalid狀態,感到很莫名其妙,由於咱們的開發者帳號是前兩個月剛續費的,當時整理了證書,全部的都是從新生成。html
研究發現致使Provisioning Profile變「invalid」狀態的緣由有兩個: 一個是和Provisioning Profile相關的證書發生改變,另外一個是相關的 App ID發生改變。 這兩種狀況發生於本身生成相關文件的時候,Xcode管理生成的文件不會出現這種情況。app
若是和簽名文件相關的代碼簽名證書過時或者被吊銷,這個簽名文件就必需要從新被編輯而且和關聯到一個新的證書,才能從invalid狀態恢復到active狀態,並被從新用於代碼簽名。code
當App ID發生改變時,好比在Xcode中打開或者關閉Capabilities中的某個功能,和App ID相關的簽名文件必須被更新來相應的反應某個功能的關閉或開啓。cdn
Xcode自動生成管理的簽名文件會自動更新,而手動建立的必需要從新生成,進入開發者帳號Certificates, Identifiers & Profiles下,對Provisioning Profiles下的簽名文件進行edit編輯,而後generate從新生成便可。htm
而我項目中就是由於開啓了Capabilities下的功能致使文件狀態變爲invalid。blog
由App ID改變而致使簽名文件變爲無效狀態不會影響以前使用該文件簽名過的應用程序,變爲無效狀態只是提示開發者必需要更新/生成新的簽名文件來反映其關聯的App ID的變化,以後才能再次使用它進行代碼簽名。開發
證書過時或吊銷不會影響該證書已經簽名過的任何應用程序,簽名證書無效狀態時必須從新生成/更新配置文件才能與新的有效證書相關聯。get
在簽名證書狀態從「invalid」變爲「active」以後,使用新的簽名文件簽名代碼以前須要在Xcode中同步新的Provisioning Profile.同步