Not receiving push notifications in background iOS GCM
<p>I am trying to receive push notifications while in background, but it doesn't seem to be working.
Here is my AppDelegate code:</p>

<pre><code>func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -&gt; Void) {

     GCMService.sharedInstance().appDidReceiveMessage(userInfo);
    var notification = UILocalNotification()
    notification.alertBody = "Nova poruka od korisnika "+(userInfo["gcm.notification.username"] as! String) // text that will be displayed in the notification
    notification.fireDate=NSDate(timeIntervalSinceNow: 0)
    notification.applicationIconBadgeNumber=0
    notification.soundName = UILocalNotificationDefaultSoundName // play default sound
    notification.userInfo=userInfo // assign a unique identifier to the notification so that we can retrieve it later
    notification.timeZone=NSTimeZone.localTimeZone()
    UIApplication.sharedApplication().scheduleLocalNotification(notification)
    completionHandler(UIBackgroundFetchResult.NoData)


}
</code></pre>

<p>I receive a callback to this function when I am in the foreground, but as soon as I tap the home button, the notifications are not received (I am guessing the VPN portion fails).</p>

<p>This is the PHP code that sends the notifications:<br>
(I know it's horrible code but I am debugging atm :P)</p>

<pre><code>foreach ($iosIDs as $id) {
        $fields = array("to" =&gt; $id, "notification" =&gt; $msg, "priority" =&gt; "high", "content_available" =&gt; true);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://gcm-http.googleapis.com/gcm/send');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
        $result = curl_exec($ch);
        echo $result;
        curl_close($ch);
    }
</code></pre>

<p>I have read at least 10 of these questions, but can't seem to figure it out. Many thanks.</p>