title: NSUserDefaults with SuiteName works on simulator but it doesn't on the device
body: <p>I really don't know how to approach this.
  I'm creating a keyboard extension and I need to share some data between my application and my plugin. I'm trying to use NSUserDefaults.</p>
  
  <p>I have the following snippet in my application</p>
  
  <pre><code>userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.____"];
  [userDefaults setObject:@"w/e" forKey:@"mykey"]; //in my app
  [userDefaults stringForKey:@"mykey"]; //in my extension
  </code></pre>
  
  <p>I have created the group ID in itunes connect, updated the application ID for both the app and the extension, I have recreated the provisioning profile and I have add the following entitlements</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
  &lt;plist version="1.0"&gt;
      &lt;dict&gt;
          &lt;key&gt;com.apple.security.application-groups&lt;/key&gt;
          &lt;array&gt;
              &lt;string&gt;group.com.___&lt;/string&gt;
          &lt;/array&gt;
      &lt;/dict&gt;
  &lt;/plist&gt;
  </code></pre>
  
  <p>everything works great... on the simulator. when I access <code>myKey</code> running the plugin from the device I get a nil object back.</p>
  
  <p>not that, the object <code>userDefaults</code> it self is not nil. </p>
  
  <p>any help?</p>
  
  <p><strong>EDIT</strong>
  the problem doesn't seem to show up if I ask and grand full-access to the plugin. but why would I need full-access to use this functionality? and why do I need it on the device and not on the simulator? </p>