【发布时间】:2014-07-26 21:44:40
【问题描述】:
我在 iOS 8 扩展程序和容器应用程序之间共享数据时遇到问题。 我从开发门户和 Xcode 建立了组,我的权利 plist 看起来都像:
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>my group id</string>
</array>
</dict>
苹果文档中建议使用[[NSUserDefaults standardUserDefaults]的解决方案
对我不起作用。
我已经尝试了@Santa Claus 在这篇帖子Communicating and persisting data between apps with App Groups 中使用的解决方案
[[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 文件,但是当我在设备上运行时,扩展程序在该文件夹中找不到任何文件。但是在模拟器中它发现它很好并且一切正常。
【问题讨论】:
-
我可以确认my solution 也适用于设备。尝试卸载您的应用程序并重新安装它们。
-
谢谢,我试过卸载了,还是不能在设备上运行..
-
确认您的组 ID 在应用程序授权和
NSUserDefaults初始化中输入的完全相同 -
他们都是一样的,没有运气:(
-
查看the other solution to that question 是否有效。您不必使用它,但它会显示应用组是否设置正确。
标签: ios ios8 ios-app-extension