簡體   English   中英

iOS:已退出的應用無法通過安全API訪問鑰匙串

[英]iOS: Resigned app cannot access keychain through security API

我們正在為客戶撰寫應用程序。 我們編譯應用程序並向客戶提供IPA,然后客戶使用其配置文件和密鑰重新授予應用程序。

該應用程序正常工作,直到客戶辭職。 然后在訪問鑰匙串時失敗。 我們在設備控制台中收到消息,如下所示:

... SecItemAdd: missing entitlement
... SecItemCopyMatching: missing entitlement

記錄我們收到的返回碼-25308“所有SecItem *調用中都不允許與安全管理服務器進行交互”。

我找不到任何有同樣問題和解決方案的人。

初始構建和后續代碼簽名都有效,應用程序一直運行,直到它嘗試訪問鑰匙串。 在辭職時,客戶指定了我們最初使用的相同應用ID。 我也添加了和權利文件。

我注意到客戶使用的配置文件中使用的應用程序ID與應用程序中的ID不同。 然而,辭職的工作和應用程序運行所以我在這一點上假設它不是一個問題。

到目前為止沒有運氣。

有人有這個問題並解決了嗎?

感謝@borrrden的回復。 他們給了我一些好的指示。

我最終把它全部搞定了。 這是我發現的。

  1. 通配符ids很好。 我使用外卡ID並訪問鑰匙串沒有問題。

  2. 問題是XCode根據它在編譯時知道的id動態創建一組權利。 發生重新簽名時,配置文件包含一個應用程序ID,生成的權利不匹配。 因此iOS不允許訪問。

  3. 為了解決這個問題,我創建了一個權利文件,我讓客戶端指定為codesign參數的一部分。 此權利包含與配置文件中的新應用程序ID匹配的密鑰鏈訪問組。 我還必須在訪問組的前面添加正確的團隊ID。 通常XCode會自動插入。

  4. 數據保護也與此問題無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM