2017-02-13 1 views
0

Salut, je voulais mettre en œuvre le service de notification snspush fourni par amazone. installer pod pour cette En PODFILE j'écris pod 'AWSSNS' après pod installerAWSSNS (Amazone Push notification), Crash d'application

Ensuite, je mets en œuvre le code suivant

Quand je lance l'application, il est plantage avec connexion suivant

**** en raison de l'application Mettre fin exception uncaught 'NSInternalInconsistencyException', la raison: « La configuration du service est nil. Vous devez configurer Info.plist ou définir defaultServiceConfiguration avant d'utiliser cette méthode. '*

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
UIMutableUserNotificationCategory *messageCategory = [[UIMutableUserNotificationCategory alloc] init]; 
messageCategory.identifier = @"ShareAction"; 
UIMutableUserNotificationAction *notificationAction = [[UIMutableUserNotificationAction alloc] init]; 
notificationAction.identifier = @"ShareAction"; 
notificationAction.title = @"Share"; 
notificationAction.activationMode = UIUserNotificationActivationModeForeground; 
notificationAction.authenticationRequired = YES; 
notificationAction.destructive = NO; 
[messageCategory setActions:@[notificationAction] forContext:UIUserNotificationActionContextDefault]; 
NSSet *categories = [NSSet setWithObject:messageCategory]; 

UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert; 
UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:categories]; 

[[UIApplication sharedApplication] registerForRemoteNotifications]; 
    [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings]; 

}

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{ 
NSString *deviceTokenString = [[[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]] stringByReplacingOccurrencesOfString:@" " withString:@""]; 

NSLog(@"deviceTokenString: %@", deviceTokenString); 
[[NSUserDefaults standardUserDefaults] setObject:deviceTokenString forKey:@"deviceToken"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

AWSSNS *sns = [AWSSNS defaultSNS]; 
AWSSNSCreatePlatformEndpointInput *request = [AWSSNSCreatePlatformEndpointInput new]; 
request.token = deviceTokenString; 
request.platformApplicationArn = SNSPlatformApplicationArn; 
[[sns createPlatformEndpoint:request] continueWithBlock:^id(AWSTask *task) { 
    if (task.error != nil) { 
     NSLog(@"Error: %@",task.error); 
    } else { 
     AWSSNSCreateEndpointResponse *createEndPointResponse = task.result; 
     NSLog(@"endpointArn: %@",createEndPointResponse); 
     [[NSUserDefaults standardUserDefaults] setObject:createEndPointResponse.endpointArn forKey:@"endpointArn"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 



    } 

    return nil; 
}]; 

}

S'il vous plaît Aide si quelqu'un sait.

Répondre

0

Vous devez utiliser ce code:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert; 
    UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:categories]; 

    [[UIApplication sharedApplication] registerForRemoteNotifications]; 
    [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings]; 
} 
+0

Son même, journal d'impression que l'application Mettre fin à cause de l'exception non interceptée 'NSInternalInconsistencyException', la raison: « La configuration du service est nul. Vous devez configurer Info.plist ou définir defaultServiceConfiguration avant d'utiliser cette méthode. ' – user2856484