带有SuiteName的NSUserDefaults可以在模拟器上运行,但它不在设备上

时间:2014-08-19 10:37:12

标签: ios objective-c uikit ios8

我真的不知道如何处理这个问题。 我正在创建一个键盘扩展,我需要在我的应用程序和我的插件之间共享一些数据。我试图使用NSUserDefaults。

我的应用程序中有以下代码段

userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.____"];
[userDefaults setObject:@"w/e" forKey:@"mykey"]; //in my app
[userDefaults stringForKey:@"mykey"]; //in my extension

我已在itunes connect中创建了组ID,更新了应用和扩展程序的应用程序ID,我重新创建了配置文件,并添加了以下权利

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>com.apple.security.application-groups</key>
        <array>
            <string>group.com.___</string>
        </array>
    </dict>
</plist>

一切都很棒......在模拟器上。当我从设备访问运行插件的myKey时,我得到一个零对象。

不是这样,它自己的对象userDefaults不是零。

任何帮助?

修改 如果我要求并且完全访问该插件,问题似乎不会出现。但为什么我需要完全访问才能使用此功能?为什么我需要在设备上而不是在模拟器上?

0 个答案:

没有答案