[英]iOS: Resigned app cannot access keychain through security API
我們正在為客戶撰寫應用程序。 我們編譯應用程序並向客戶提供IPA,然后客戶使用其配置文件和密鑰重新授予應用程序。
該應用程序正常工作,直到客戶辭職。 然后在訪問鑰匙串時失敗。 我們在設備控制台中收到消息,如下所示:
... SecItemAdd: missing entitlement
... SecItemCopyMatching: missing entitlement
記錄我們收到的返回碼-25308“所有SecItem *調用中都不允許與安全管理服務器進行交互”。
我找不到任何有同樣問題和解決方案的人。
初始構建和后續代碼簽名都有效,應用程序一直運行,直到它嘗試訪問鑰匙串。 在辭職時,客戶指定了我們最初使用的相同應用ID。 我也添加了和權利文件。
我注意到客戶使用的配置文件中使用的應用程序ID與應用程序中的ID不同。 然而,辭職的工作和應用程序運行所以我在這一點上假設它不是一個問題。
到目前為止沒有運氣。
有人有這個問題並解決了嗎?
感謝@borrrden的回復。 他們給了我一些好的指示。
我最終把它全部搞定了。 這是我發現的。
通配符ids很好。 我使用外卡ID並訪問鑰匙串沒有問題。
問題是XCode根據它在編譯時知道的id動態創建一組權利。 發生重新簽名時,配置文件包含一個應用程序ID,生成的權利不匹配。 因此iOS不允許訪問。
為了解決這個問題,我創建了一個權利文件,我讓客戶端指定為codesign參數的一部分。 此權利包含與配置文件中的新應用程序ID匹配的密鑰鏈訪問組。 我還必須在訪問組的前面添加正確的團隊ID。 通常XCode會自動插入。
數據保護也與此問題無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.