今天登陸iOS開發者賬號,突然發現簽名檔案變為了invalid狀態,感到很莫名其妙,因為我們的開發者賬號是前兩個月剛續費的,當時整理了證書,所有的都是重新生成。
研究發現導致Provisioning Profile變“invalid”狀態的原因有兩個: 一個是和Provisioning Profile相關的證書發生改變,另一個是相關的 App ID發生改變。 這兩種情況發生於自己生成相關檔案的時候,Xcode管理生成的檔案不會出現這種狀況。
Certificate改變
如果和簽名檔案相關的程式碼簽名證書過期或者被吊銷,這個簽名檔案就必須要重新被編輯並且和關聯到一個新的證書,才能從invalid狀態恢復到active狀態,並被重新用於程式碼簽名。
App ID改變
當App ID發生改變時,比如在Xcode中開啟或者關閉Capabilities中的某個功能,和App ID相關的簽名檔案必須被更新來相應的反應某個功能的關閉或開啟。
Xcode自動生成管理的簽名檔案會自動更新,而手動建立的必須要重新生成,進入開發者賬號Certificates, Identifiers & Profiles下,對Provisioning Profiles下的簽名檔案進行edit編輯,然後generate重新生成即可。
而我專案中就是因為開啟了Capabilities下的功能導致檔案狀態變為invalid。
invalid狀態的影響
由App ID改變而導致簽名檔案變為無效狀態不會影響之前使用該檔案簽名過的應用程式,變為無效狀態只是提示開發者必須要更新/生成新的簽名檔案來反映其關聯的App ID的變化,之後才能再次使用它進行程式碼簽名。
證書過期或吊銷不會影響該證書已經簽名過的任何應用程式,簽名證書無效狀態時必須重新生成/更新配置檔案才能與新的有效證書相關聯。
在簽名證書狀態從“invalid”變為“active”之後,使用新的簽名檔案簽名程式碼之前需要在Xcode中同步新的Provisioning Profile.