1. 程式人生 > >遵循以下幾條原則,不再糾結Xcode程式碼簽名問題

遵循以下幾條原則,不再糾結Xcode程式碼簽名問題

多虧了下面的這些習慣,這一年裡我再也沒有為Xcode的Code Signing問題糾結過。這些習慣有的看起來很大材小用,而且它們大都比用Xcode裡的內建支援功能更“複雜”。但那又怎樣!去他媽的胡說八道!做自己的事情,回去該幹嘛幹嘛!

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。快取過期的證書特別容易出現快取錯誤。