Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cordova how to remove "Push notification" on iOS

I submitted my application using Apache Cordova to Apple Store and I got a warning from apple that "Missing Push Notification Entitlement".

But it seems that I've never used "Push Notification" in my application. How can I remove it from my application? Is it default in Apache Cordova?

like image 956
Trong Lam Phan Avatar asked Jul 29 '14 14:07

Trong Lam Phan


4 Answers

HOW TO DO THIS FOR CORDOVA APPS 'PROPERLY':

I also had this problem. The solution proposed by @michaelb worked but I was frustrated enough seeing that the whole thing was wrapped in conditional compilation (ie #ifndef DISABLE_PUSH_NOTIFICATIONS) that I decided to learn how to add a 'Preprocessor Macro', which basically tells XCode to compile you app with this bit of code left out.

This is how the you can define the DISABLE_PUSH_NOTIFICATIONS precompilation symbol graphically via the UI (note that this the way its done in XCode 6.1):

enter image description here

Hope this helps other people out there in same situation.

like image 91
Steven de Salas Avatar answered Sep 26 '22 12:09

Steven de Salas


In AppDelegate.m remove didRegisterForRemoteNotificationsWithDeviceToken and didFailToRegisterForRemoteNotificationsWithError. Working on PhoneGap 3.5

like image 36
Klemenko Avatar answered Sep 27 '22 12:09

Klemenko


Following the advise above and in other places, this is what I did in Cordova 5.0.0

As result the warning disappeared and I haven't noticed any problem with the App.

  1. Open platforms/ios/InfoganGardenAdmin/Classes/AppDelegate.m
  2. Comment out line 116 to 137

example:

/* - Removed to disable push notification and Apple warning message
#ifndef DISABLE_PUSH_NOTIFICATIONS

    - (void)                                 application:(UIApplication*)application
        didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
    {
        // re-post ( broadcast )
        NSString* token = [[[[deviceToken description]
            stringByReplacingOccurrencesOfString:@"<" withString:@""]
            stringByReplacingOccurrencesOfString:@">" withString:@""]
            stringByReplacingOccurrencesOfString:@" " withString:@""];

        [[NSNotificationCenter defaultCenter] postNotificationName:CDVRemoteNotification object:token];
    }

    - (void)                                 application:(UIApplication*)application
        didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
    {
        // re-post ( broadcast )
        [[NSNotificationCenter defaultCenter] postNotificationName:CDVRemoteNotificationError object:error];
    }
#endif
*/
like image 24
michaelbn Avatar answered Sep 29 '22 12:09

michaelbn


It is most likely an issue with the version you are using, PhoneGap 3.5 has that same issue (PhoneGap is built on Cordova), you can view the discussion thread here

The current solution seems to be "use an older version"

like image 21
Brett Gregson Avatar answered Sep 27 '22 12:09

Brett Gregson