Apple Notification Device Token change
Asked Answered
J

3

0

I'm facing an issue after updating my app. I'm getting a device token in this format C43461D5-E9CB-4C10-81F8-020327A07A62 and the notifications aren't working.

Before, I had a notification in this format: 2add70865401171c7ca1d3b3957b719eaf721fef8f8d7a52bc91ef8a872cc004

I did allow notifications for the app and I've not changed anything in the backend. Can anyone guide me why it's not working?

Code in didFinishLaunchingWithOptions:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    [[UIApplication sharedApplication] registerForRemoteNotifications];
}
else
{
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
}

Getting the device token:

NSString *deviceTokenID = [[NSUserDefaults standardUserDefaults] objectForKey:DEVICE_TOKEN_PUSH_NOTI];
if ([deviceTokenID isEqualToString:@""] || deviceTokenID == nil) {
    NSString *tempApplicationUUID  = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    [dics setObject:tempApplicationUUID forKey:@"cust_device_id"];
} else {
    [dics setObject:[[NSUserDefaults standardUserDefaults] objectForKey:DEVICE_TOKEN_PUSH_NOTI] forKey:@"cust_device_id"];
}

I got the below error:

Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo={NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}, no valid 'aps-environment' entitlement string found for application

Jeffry answered 13/10, 2016 at 10:34 Comment(8)
can you show ur code of didfinishlaunchBureaucratize
also show your code of getting device token.Hussite
"if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; }"Jeffry
Show your code of getting device token and show it in your code please not in comment.Hussite
how you take device token?Hussite
https://mcmap.net/q/455231/-sskeychain-not-retain-data/… refer my answerDeneb
I have updated the question please checkJeffry
check your provisional profile and check the server side which ssl certificate they are using.Vivid
H
1

Click on .xcodeproj -> Capabilities -> Enable Push Notification

enter image description here

Hussite answered 13/10, 2016 at 10:53 Comment(2)
@Jack this is just used for background modes of push notifications. It has nothing to do with why push notif doesn't come. In short this is NOT used to Enable push notif. This is just used to handle notifications in background modeCindacindee
@RajanMaheshwari this ans is related to error get. So i just give ans for that error "no valid 'aps-environment' entitlement string found for application".Hussite
V
3

enter image description here

plz go to

Click on .xcodeproj -> Capabilities -> Enable Push Notification

hope it's work

Vivid answered 13/10, 2016 at 10:53 Comment(0)
H
1

Click on .xcodeproj -> Capabilities -> Enable Push Notification

enter image description here

Hussite answered 13/10, 2016 at 10:53 Comment(2)
@Jack this is just used for background modes of push notifications. It has nothing to do with why push notif doesn't come. In short this is NOT used to Enable push notif. This is just used to handle notifications in background modeCindacindee
@RajanMaheshwari this ans is related to error get. So i just give ans for that error "no valid 'aps-environment' entitlement string found for application".Hussite
H
-3
NSString *tempApplicationUUID  = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

The UUIDString is the Unique device ID but for the Apple Push Notification you required the device token get back from APNS so for that Use the below method you get 64 digit deviceToken and get notification.

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken


{
    NSString *devToken = [[[[deviceToken description]
                            stringByReplacingOccurrencesOfString:@"<"withString:@""]
                           stringByReplacingOccurrencesOfString:@">" withString:@""]
                          stringByReplacingOccurrencesOfString: @" " withString: @""];


    NSString *str = [NSString
                     stringWithFormat:@"Device Token=%@",devToken];

    [[NSUserDefaults standardUserDefaults]setObject:devToken forKey:@"DeviceToken"];

}
Hussite answered 13/10, 2016 at 10:45 Comment(2)
Please don't use [NSData description]! It's not a good way to stringify push tokens because the description can change any time.Gnosticism
Well, it seems it has changed in iOS 13.Gnosticism

© 2022 - 2024 — McMap. All rights reserved.