我已经在ios中进行了编码,可以接收从“ AWS SNS”发送的通知,如果我将设备直接连接到xcode并运行,并且从icode版本低于6的ipa创建的ipa或通过iTunes生成的ipa,则可以收到通知。如果我从任何xcode 6版本生成ipa,则未收到通知,如何解决此问题?我在启用推送通知服务的情况下使用开发配置文件和开发证书。
didFinishLaunchWithOptions代码
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIRemoteNotificationTypeBadge
|UIRemoteNotificationTypeSound
|UIRemoteNotificationTypeAlert) categories:nil];
[application registerUserNotificationSettings:settings];
} else {
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
[application registerForRemoteNotificationTypes:myTypes];
}
#ifdef __IPHONE_8_0
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
//register to receive notifications
[application registerForRemoteNotifications];
}
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler
{
[self showAlertIfNotificationReceives: userInfo];
//handle the actions
if ([identifier isEqualToString:@"declineAction"]){
}
else if ([identifier isEqualToString:@"answerAction"]){
}
}
#endif
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{
NSLog(@"deviceToken: %@", deviceToken);
// Register with AWS SNS
}
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error{
NSLog(@"Failed to register with error : %@", error);
}
//Handle Notification if App is Open
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
NSLog(@"SNS Notification userInfo: %@",userInfo);
}
我正在接收设备令牌并成功在AWS SNS中注册,但是我仅在xcode 6版本的ipa中没有收到通知。提前感谢您的任何帮助。
即使“选择了开发证书和开发配置文件”,XCode 6.4版也会自动使用“分发证书”来生成ipa(我不知道为什么)
问题是:由于xcode自动选择了用于ipa生成的分发证书,因此应用程序在生产APNS中注册,并且AWS SNS APNS沙箱服务器正在尝试将通知发送到生产APNS服务器设备令牌。
最后,创建了AWS SNS Production Application以发送通知
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句