phonegap / phonegap-plugin-push

Register and receive push notifications
MIT License
1.94k stars 1.91k forks source link

Not Receiving notification for IOS 10+ #1349

Closed PDivya closed 5 years ago

PDivya commented 7 years ago

Expected Behaviour

Should receive notification for IOS 10+.

Actual Behaviour

Getting Notification for IOS9.3+ but after updating my device to IOS 10+, I am not getting notification though my push plugin registration happen successfully.

Reproduce Scenario (including but not limited to)

I am having no change in payload and APNS certificate(development) and I am also able to get notification in IOS9.3.4 but not working for IOS10+ device. I tried testing my APNS server also using http://www.pushwatch.com/apns/ online tool and it shows that message sent successful but not received on device IOS 10+

Steps to Reproduce

Trigger a notification to IOS 10+ device, not received on device.

Platform and Version (eg. Android 5.0 or iOS 9.2.1)

Cordova 6.4,IOS 4.3.0

(Android) What device vendor (e.g. Samsung, HTC, Sony...)

Cordova CLI version and cordova platform version

Cordova 6.4

Plugin version

phonegap-plugin-push 1.9.0 "PushPlugin"

Sample Push Data Payload

{ "registration_ids": ["my device id"], "data": { "title": "My Title", "message": "My message", "key1": "data 1", "content-available": "1" } "priority":"high" }

Sample Code that illustrates the problem

PushNotification.init({ android: { senderID: "SENDERID", vibrate: true, sound: true, iconColor: "#d32e2e" }, ios: { senderID: "SENDERID", gcmSandbox: true, alert: "true", badge: "true", sound: "true" }, windows: {} });

Logs taken while reproducing problem

2016-11-09 18:11:21.773097 XXXX[2148:616609] Push Plugin register called 2016-11-09 18:11:21.773232 XXXX[2148:616609] PushPlugin.register: setting badge to false 2016-11-09 18:11:21.773276 XXXX[2148:616609] PushPlugin.register: clear badge is set to 0 2016-11-09 18:11:21.773326 XXXX[2148:616609] PushPlugin.register: better button setup 2016-11-09 18:11:21.778655 XXXX[2148:616609] GCM Sender ID 849827717076 2016-11-09 18:11:21.778747 XXXX[2148:616609] Using GCM Notification 2016-11-09 18:11:21.778856 XXXX[2148:616609] Using GCM Sandbox 2016-11-09 18:11:21.793099 XXXX[2148:616565] Push Plugin register success: <30de607c 5e090bbd 7e70db77 4f23d7cb 032102e4 efaf7f82 7586a0dd 2107e199> 2016-11-09 18:11:21.854: GCM | GCM library version 1.1.4 2016-11-09 18:11:21.873: GCM | Invalid key in checkin plist: GMSInstanceIDDeviceDataVersion 2016-11-09 18:11:21.877611 XXXX[2148:616565] GCM Registration Token: ccXwgZHGzW8:APA91bGoCXT9H1H1SYgMs9m0c3xD8Zda--htflgposn01VZdb6HrWw87DvMsmO2oHuR6t4jSfddbSAyxN1gFrKQHRa4gFgnFZkFVAN8qJ8GKRr_rhOxqi2n5TVoB3Mj-Tt34wtjW2fWY

PDivya commented 7 years ago

Can anybody help here. I am stuck with this issue from last 1 month. I faced the same issue with push plugin 1.8.3 and cordova IOS 4.2, I thought updating will fix it but still no luck.

macdonst commented 7 years ago

@PDivya based upon what I'm seeing in the logs you have sent you are successfully registering with GCM/APNS to receive push notifications. I can also see that you are using the GCM/APNS sandbox, that is, development mode.

In 99.98% of the cases I've seen where push is not arriving on the device is because of a mis-match of certificate between the on the device and the server. It seems like you are setup for development on the device so it is probably the server where you have production certificate setup.

You need to double check this setting on the service you use. As well, you could write your own node script with the development certificate installed and send directly to 30de607c 5e090bbd 7e70db77 4f23d7cb 032102e4 efaf7f82 7586a0dd 2107e199 using node-apns or ccXwgZHGzW8:APA91bGoCXT9H1H1SYgMs9m0c3xD8Zda--htflgposn01VZdb6HrWw87DvMsmO2oHuR6t4jSfddbSAyxN1gFrKQHRa4gFgnFZkFVAN8qJ8GKRr_rhOxqi2n5TVoB3Mj-Tt34wtjW2fWY using node-gcm.

PDivya commented 7 years ago

@macdonst : Thanks for the reply. I also suspect the same and thats why i checked my certificates multiple time and if it is a certificate mismatch issue then it should not work for IOS9.3+ devices also.But I am able to get notification on IOS9.3+ but not on IOS 10+ devices.

macdonst commented 7 years ago

@PDivya the only other issue I can think of is to go into Xcode, select your project, go to the capabilities tab and check to make sure Push Notifications is turned on. For iOS 10 it has to set the aps-environment in a plist. If you create a brand new cordova-ios 4.3.0 project it should do this for you.

PDivya commented 7 years ago

@macdonst :yes it is creating a application.entitlements file which has key aps-environment and value "development". Not seeing any especial reason why it's not working for IOS10+ device.

Same development IPA build woks on IOS9.3+ device but not on IOS10+ device.

asinha08 commented 7 years ago

I am also facing same issue. Notification works on IOS9 and same IPA doesn't work on IOS10

PDivya commented 7 years ago

Any insight will be helpful here. I am stuck with this issue from long. I cannot doubt on my APNS certificate as same ipa works for IOS9. Not able to understand why it is not working for IOS10 devices. Is there any other alternate we have to make it work on IOS using this plugin.

Just to add I tried writing native code snippet for notification which works on IOS10. But I still want to go with common code for both android and IOS and thats why I still prefer some solution using push plugin.

ILABUTK commented 7 years ago

Add double quotes to the items below, like "android", "sound":"true" ...

PushNotification.init({ android: { senderID: "SENDERID", vibrate: true, sound: true, iconColor: "#d32e2e" }, ios: { senderID: "SENDERID", gcmSandbox: true, alert: "true", badge: "true", sound: "true" }, windows: {} });

PDivya commented 7 years ago

@ILABUTK :I don't think it will help. I already tried putting then as indexed key. Can you put some more infor here.

PDivya commented 7 years ago

Hi @macdonst : I created hello world cordova app and used the same plugins which I have in production app.List are given below:

  1. cordova plugin add cordova-plugin-appversion
    1. cordova plugin add cordova-plugin-device
    2. cordova plugin add cordova-plugin-dialogs
    3. cordova plugin add cordova-plugin-geolocation
    4. cordova plugin add cordova-plugin-network-information
    5. cordova plugin add cordova-plugin-statusbar
    6. cordova plugin add cordova-plugin-whitelist
    7. cordova plugin add cordova-plugin-x-socialsharing
    8. cordova plugin add cordova.plugins.diagnostic
    9. cordova plugin add uk.co.workingedge.phonegap.plugin.launchnavigator
    10. cordova plugin add cordova-plugin-camera
    11. cordova plugin add cordova-plugin-file
    12. cordova plugin add cordova-plugin-x-toast
    13. cordova plugin add cordova-sqlite-storage
    14. cordova plugin add phonegap-plugin-push --variable SENDER_ID="XXXXXXXXX"
    15. cordova plugin add ionic-plugin-keyboard
    16. cordova plugin add cordova-plugin-contacts
    17. cordova plugin add cordova-plugin-android-permissions@0.10.0
    18. cordova plugin add cordova-plugin-background-mode
    19. cordova plugin add cordova-plugin-sms
    20. cordova plugin add phonegap-plugin-barcodescanner --variable CAMERA_USAGE_DESCRIPTION="To scan barcodes and take snaps"

With the above environment. We are getting notification in IOS9+ but not in IOS10 +. Please let me know if you looking for more information from my side.

Regards, Divya

PDivya commented 7 years ago

@macdonst : I tried testing my APS certificate on app using online tester:http://apns-gcm.bryantan.info/ . I am able to get the notification on IOS10 also.

As this online tester helps to provide APNS and GCM testing. I am able to get notification from APNS but when I am using GCM it is still same.

Do you think any possibility where the handshake between GCM and APNS going for a toss only for IOS10. Any Insight will be helpful.

Regards, Divya

amauryleproux commented 7 years ago

Hi @PDivya I have the same issue, do you find any solutions?

Thanks :)

stib commented 7 years ago

Hi @PDivya I haven't tested my code with ios 9.x but my iPhone has 10.0.2 and I am seeing similar issue. Did you try sending a message to your device either to the Registration Id or through a Topic on FB Console to see if that works? Messages I sent through FB console don't reach the iOS device though they reach the Android device subscribed to the same Topic.

Were you able to resolve this?

Thanks, Sanjay.

peterpeterparker commented 7 years ago

If that could help ....

I had the same problem, wasn't receiving push notifications on iOS10 where I was on iOS9. Updating Xcode form 8.0 to 8.2.1 and building a new app seems to have resolved my issue. I didn't yet pushed an application in production but at least in test it works better.

Dmatafonov commented 7 years ago

I have lots of subscribers and the case, when pushes dont work is: iOS 10.2 and iPhone 7. Eveverything work on other iPhone models. GCM successufully receives the message, but the phone doesnt. The 7 IPhones do receive other messages - viber, facebook, etc. Trouble is only with GCM.

robvandijk commented 7 years ago

I found that when omitting the badge number in the payload the notification is not received in the plugin (on iOS 10, with app in foreground). When I include a badge number in the payload, the notification is received. Could someone verify this?

ravikarusala commented 7 years ago

Have you found a solution to this @PDivya ? Truly appreciate any updates here.

KwanW commented 7 years ago

Same problem here. I'm using the plugin version 1.9.x, receiving notification in IOS9+ but not in IOS10+. Any solutions?

christianraj commented 7 years ago

The push works fine with android and dev environment of IOS but when i switch to production i could not get notification received uploaded production certificate also even-though couldnt receive notification

jeevan-vj commented 7 years ago

Same here. Push notification works fine in apple 6 and android devices. In apple 7 notification works only when debugin. Otherwise not working.

christianraj commented 7 years ago

ya i had that issue it has been rectified by creating new certificates delete all old and create a new from first

divyasreekandalam commented 7 years ago

Hallo , Did anybody find solution? I am using ionic-push , I have added respective certificates for both android and ios. on Android, everything is working as per requirment, but on iOS, only global remote push from ionic website is working and I couldn't able to receive any new chat update

NarendraDigi commented 7 years ago

Hello,

I am also facing same issue not receiving notification in ios 10 device . But when i try to send notification using Apns Gcm Tester that time i received notification. i created application in ionic hybrid app. Anyone have solution ?

divyasreekandalam commented 7 years ago

@NarendraDigi Hallo NarendraDigi, yes, I found solution and it is working. Please find steps in attachment. Hope it will help. All the best. Steps_to_enable_pushNotification_iOS.pdf

hybridapp20161 commented 7 years ago

im also facing the same issue reciving the push on 9.3 and below than that but not able to get for 10.0 and above . i can debug the code and see that device is successfully able to register into the APNS with Device token but in delegates methods for ios 10+ not seeing any delegation while sending the push for the device. if Any one is having any solution please help me here. thanks in advance.

stale[bot] commented 6 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

lock[bot] commented 5 years ago

This thread has been automatically locked.