[英]Xcode 8.0 Automatically Manage Signing behaviour
我已經使用自動管理簽名選項有一段時間了。 然而,當我在最近的 Xcode 8.0 版本中這樣做時,它迫使我使用開發人員代碼簽名標識,即使是在構建設置中發布和分發,這本身就很奇怪。 當我提交相關的二進制文件時,我收到了來自 Apple 的可怕的 Missing Push Notification Entitlement 電子郵件。 為了彌補它,我禁用了自動選項並手動返回指定配置文件,這允許我將分發配置文件保留在分發構建設置中,並保存來自 Apple 的警告電子郵件。
為什么自動管理以這種方式工作以及如何調整其行為?
隨着 Xcode 8 的發布,Apple 引入了一種管理簽名配置的新方法。 現在您有兩個選項Manual
和Automatic
。
這個新的Automatic Signing
工作方式與以前的 Xcode 版本不同。 之前,當您設置Automatic
配置文件時,Xcode 使用的是您計算機中與您嘗試使用的權利和捆綁標識符匹配的第一個配置文件和證書。
在 Xcode 8 中, Automatic Signing
將為您管理配置文件、權利和證書,但僅適用於Development
。 如果您選擇自動,您將被迫使用Development signing
和 Xcode 創建的配置文件。
在WWDC 2016(會話 401 - Xcode 應用程序簽名中的新內容)上,他們解釋了這種新的簽名方法並描述了一些“最佳實踐”。 當您為分發而構建並使用Automatic Signing
或Manual
您應該為Development
存檔,然后(從組織者或命令行工具xcodebuild -exportArchive
) xcodebuild -exportArchive
為Distribution
。 即使您的應用程序已存檔用於Development
,組織者也會重新簽署您的應用程序以進行Distribution
。
您描述的另一個問題“缺少推送通知權利”是因為 Xcode 8 改變了它應用權利的方式。 使用先前版本的 Xcode,您不必明確添加APS Environment
權利,如果您的配置文件具有該權利就足夠了。 確保在Capabilities
選項卡中啟用了Push Notification
功能,並檢查那里沒有錯誤。
(編輯:這種新行為是有意的,在 Xcode 8 發行說明中進行了描述: https : //developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html#//apple_ref/doc/uid /TP40001051-CH1-DontLinkElementID_44 )
Xcode 8 不會在構建時自動從配置文件中復制 aps-environment 權利。 這種行為是故意的。 要使用此權利,請在項目編輯器的“功能”窗格中啟用推送通知,或手動將權利添加到您的權利文件中。 (28076333)
這是啟用手動簽名的過程
在項目編輯器中,從 Project/Target 彈出菜單中選擇目標,單擊 Signing & Capabilities,然后顯示 Signing 設置。
單擊全部或特定的構建配置。
例如,您可以對 Release 配置使用自動簽名,對 Debug 配置使用手動簽名。
取消選擇“自動管理簽名”。
注意:如果目標不使用供應配置文件(例如,框架),請從“團隊”彈出菜單中選擇一個團隊。
從“供應配置文件”彈出菜單中,選擇自定義供應配置文件。
該菜單包含與目標捆綁包 ID 匹配的所有團隊的所有自定義配置文件。 該菜單可能包含過期和無效的配置文件——例如,在您的開發者帳戶中更改了 App ID 的配置文件。
如果您要使用的配置文件沒有出現在菜單中,您可以下載配置文件或導入配置文件。
更多信息: https : //help.apple.com/xcode/mac/current/#/dev1bf96f17e
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.