簡體   English   中英

使用 App Groups 的數據共享適用於模擬器但不適用於設備

[英]Data sharing using App Groups works on simulator but not on device

我開發了一個單頁應用程序和一個鍵盤擴展程序,我想將數據從我的鍵盤擴展程序發送到我的應用程序。 我創建了一個應用程序組並將其添加到兩個目標中; 授權文件位於每個目標文件夾下。

在模擬器中,它工作正常; 但是當我在我的設備上運行它時,我無法訪問擴展程序保存的數據。 有趣的是,我可以訪問應用程序保存的擴展程序上的數據。

在模擬器上運行我的應用程序和擴展程序時,我沒有收到任何警告/錯誤,但是在設備上運行時,我在將數據寫入共享容器時收到以下警告:

2020-11-05 12:19:14.542150-0600 TestKeyboard[2887:46080] [User Defaults] Couldn't write values for keys (
    "test_key2"
) in CFPrefsPlistSource<0x282052000> (Domain: DOMAIN_NAME, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access

在其他論壇中,我看到有時會出現這些消息,但值仍存儲在共享容器中,但這不是我的情況。

不確定這些信息是否有幫助,但我沒有蘋果開發者付費訂閱。

我在 iPhone 8 Plus、iOS 13.6 上運行此代碼。 XCode 12.1 版。

謝謝你。

正如@EmilioPelaez 所指出的,鍵盤擴展需要完全訪問權限,以便應用程序組可以工作。 它在模擬器中工作,因為模擬器中的鍵盤擴展總是被授予完全訪問權限。

要授予對鍵盤擴展的完全訪問權限,請在 NSExtension -> NSExtensionAttributes 擴展的 plist 中將 RequestsFullAccess 設置為 True。

暫無
暫無

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

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