title: AWS SNS send remote notification directly from iOS always error
body: <p>I am using AWS SNS (v2.0) for my iOS app (iOS 8) to send out remote notifications directly to another user. There is no proxy in the middle for the notification. But constantly, I have this problem where as soon as I want to send out a JSON message as below, I will get error. When I switch back to pure text, the notification is delivered and received with no problem.</p>
  
  <pre><code>    let sns = AWSSNS.defaultSNS()
      let request = AWSSNSPublishInput()
      request.messageStructure = "json"
  
      var notificationKeys = MONotificationKeys()
      var aps: NSMutableDictionary = NSMutableDictionary()
      aps.addEntriesFromDictionary(["alert": "Hello World"])
      aps.addEntriesFromDictionary(["sound": "sound.wav"])
      aps.addEntriesFromDictionary(["badge": 1])
      var raw1: NSDictionary = NSDictionary(dictionary: ["aps":aps])
      var raw2: NSDictionary = NSDictionary(dictionary: ["APNS_SANDBOX":raw1])
      var dataWithJSON = NSJSONSerialization.dataWithJSONObject(raw2, options: NSJSONWritingOptions.allZeros, error: nil)
      request.message = NSString(data: dataWithJSON!, encoding: NSUTF8StringEncoding)
      request.targetArn = targetEndpointARN
  
      sns.publish(request).continueWithExecutor(BFExecutor.mainThreadExecutor(), withSuccessBlock: { (task: BFTask!) -&gt; AnyObject! in
          println(task.result)
          return nil
      }).continueWithExecutor(BFExecutor.mainThreadExecutor(), withBlock: { (task: BFTask!) -&gt; AnyObject! in
          if (task.error != nil) {
              println("Error: \(task.error.userInfo)")
          }
          return nil
      })
  </code></pre>
  
  <p>And the error is:</p>
  
  <pre><code>Error: Optional([Code: InvalidParameter, 
  Message: Invalid parameter: JSON must contain an entry for 'default' or 'APNS_SANDBOX'., __text: (
  "\n    ",
  "\n    ",
  "\n    ",
  "\n  "), 
  Type: Sender])
  </code></pre>
  
  <p>The print out of what the message is:</p>
  
  <pre><code>{ "APNS_SANDBOX" : 
   {
    "aps" : {
      "sound" : "mo.wav",
      "badge" : 1,
      "alert" : "Hello World"
    }
   }
  }
  </code></pre>
  
  <p>You guys know what causes  this error? THANKS!</p>