我无法在 iOS 8 扩展程序和容器应用程序之间共享数据。我从开发门户和 Xcode 建立了组,我的权利 plist 看起来都像:
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>my group id</string>
</array>
</dict>
苹果文档中建议使用的解决方案[[NSUserDefaults standardUserDefaults]
对我不起作用。
我已经尝试了@Santa Claus 在这篇文章中使用应用程序组在应用程序之间通信和持久化数据以使用的解决方案
[[NSUserDefaults alloc] initWithSuiteName:@"<group identifier>"];
圣诞老人的解决方案适用于模拟器,但不适用于我的 iPhone 4s,关于如何使其在真实设备上运行的任何想法?还是我错过了什么?
一些更新:
[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group id"];
函数返回 url,来自容器应用程序和扩展的两个 url 看起来相同,为 " path /private/var/mobile/Containers/Shared/AppGroup/3DFB9750-A9F3-4C37-BC3C-0D5BF746B233"。我从容器应用程序在该文件夹中创建了一个 json 文件,但是当我在设备上运行时,扩展程序在该文件夹中找不到任何文件。但是在模拟器中它发现它很好并且一切正常。