本文由sandy翻譯自JARED SINCLAIR的博客
原文:Follow These Guidelines and Never Struggle with Xcode Code Signing Again
1.千萬不要使用Xcode內置的Code Signing助手工具。尤其不要點擊那個所謂的Fix Issuue按鈕。那不僅會讓你觸及很多沒用的文件(iOS Team Provisioning Profile…),而且還會導致你陷入配置文件的怪圈。
2.千萬不要使用通配符App ID(wildcard app identifiers)。尤其當你在多個團隊,而且每個團隊又有多個通配符App ID的時候就會很麻煩。花一點時間登錄到開發者中心,為你的每個app生成一個特有的bundle ID。不使用通配符App ID,會大大減少Code Signing道路上的陷阱。如果你有使用通配符的項目,馬上刪除它。新版Xcode使這些變的比之前更難。Let me Google that for you.
3.使用build code sign 和shared schemes。在“Manage Schemes…”面板勾選Shared讓這一切變的輕松。一個是開發環境,一個用於App Store的releases版本。如果需要,也可以考慮增加一個用於beta版本。在編輯窗口為每一個scheme選擇合適的編譯配置。如果你選擇Xcode提供的默認的編譯配置,那麼的你的開發方案會是debug模式,你的發布方案會是release模式。
4. 使用明確的code-signing identities和自動配置選擇。因為你現在使用了share schemes連接到指定的構建配置,所以你可以把你的Xcode項目設置的更具幫助性。對於你工程的Code Signing Identity 和Provisioning Profile設置需要distribution證書(Ad Hoc, Enterprise, or App Store distributions)。如果你懶的話,你也可以使用自動的iOS Distribution。可能我有太多的teams,讓我不信任xcode能做的那麼准確。我建議使用iOS開發自動設置您的調試版本,這樣有益於其他的開發者合作。我發現使用以上的signing identities設置,我能為所有的構建設置使用自動provisioning profile。
5.在target級設置上重復項目級的設置。另一個常見問題就是代碼簽名和配置文件選擇的項目級別設定與target級別設定不匹配。除非你認為你不會犯這個錯誤(我之前也認為我不會,但現在我知道怎樣才更好)。手動將代碼簽名和Provisioning profile設置為project和 target級別的,並定期檢查以確保它們保持一致。
6.刪除Keychain Access中過期的證書。Keychain Access讓它變的非常簡單。大多數證書(Ad Hoc, APN, and App Store)的有效期是365天,一些企業證書可能會延長至三年。在你創建新的分發證書和 APN證書的時候,設置日期鬧鐘來提醒你去及時更新,以防止證書過期之後你的APN 服務突然發怒,警告你代碼錯誤。
7.確保Keychain Access裡有所有需要的證書。在每個團隊裡你至少需要兩個證書:1)一個允許你在設備上安裝app的開發者證書。2) 一個分發證書允許你提交程序到 App Store。你也許會需要兩個額外的證書用於推送通知(一個用於開發、一個用於生產)。開發和分發證書適用於你團隊裡的所有程序。APN證書是特定於每個應用的。確保你有這些證書的私鑰,存儲你的證書並導到安全便捷的地方,以防萬一你的高級工程師們因為一些要命的蠢蛋都癱瘓掉的時候,你團隊裡的每個人都可以傳送到APP Store。
8.安裝新的文件或證書後無論如何都要重啟你的Xcode。緩存過期的證書特別容易出現緩存錯誤。