![](/img/trans.png)
[英]Sharing Data between App Groups not working on real device instead working on simulator
[英]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.