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

Luk*_*uka 5 objective-c uikit ios ios8

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

我的申请中有以下代码段

userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.____"];
[userDefaults setObject:@"w/e" forKey:@"mykey"]; //in my app
[userDefaults stringForKey:@"mykey"]; //in my extension
Run Code Online (Sandbox Code Playgroud)

我在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>
Run Code Online (Sandbox Code Playgroud)

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

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

任何帮助?

编辑 问题似乎没有出现,如果我问和盛大完全访问该插件.但为什么我需要完全访问才能使用此功能?为什么我需要在设备上而不是在模拟器上?