推送通知无效

时间:2013-05-06 10:17:42

标签: iphone ios xcode push-notification

我正在尝试在我的应用中启用推送通知,但它无效。它是如何在我的上一个应用程序中工作的。当我将它集成到该应用程序中时。但现在我再次测试该应用程序,它也不适用于该应用程序。通过不工作的意思是它没有显示推送通知的确认或启用弹出视图。我正在使用4.6 xcode版本并使用此行代码启用推送通知

 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

新的xcode或sdk是否存在问题,或者代码现在有些变化?

3 个答案:

答案 0 :(得分:0)

据我所知,只有在您收到启用PushNotification的通知后才会知道。即显示消息“您是否要启用通知.........”的通知。在一台设备上单击确定后,您在下次运行时未在同一设备上获得相同的警报。因此,请尝试在其他设备上进行检查,或使用开发人员配置文件调试代码。

答案 1 :(得分:0)

在委托方法中记录错误确认失败方法并验证

   - (void)applicationDidFinishLaunching:(UIApplication *)app {
       // other setup tasks here....
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
    }

    // Delegation methods
    - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
        const void *devTokenBytes = [devToken bytes];
        self.registered = YES;
        [self sendProviderDeviceToken:devTokenBytes]; // custom method
    }

    - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
        NSLog(@"Error in registration. Error: %@", err);
    }

答案 2 :(得分:0)

  

供应资料是否重要?我的意思是我正在使用外卡   用于测试推送通知的配置文件

是的,配置文件很重要。它必须包含您要向其发送推送通知(沙箱或生产)的环境的推送权利。

来自Local and Push Notification Programming Guide

  

Team Admin或Team Agent必须接下来创建配置文件   (开发或分发)用于服务器端   远程通知开发。配置文件是a   与应用程序开发人员关联的资产集合   他们的设备与授权开发团队并启用这些设备   用于测试的设备。该个人资料包含证书,   设备标识符,应用程序的捆绑包ID和所有权利,   包括<aps-environment>。所有团队成员都必须安装   在运行和测试的设备上配置配置文件   应用程序代码。

并且您无法使用通配符配置文件。您必须使用具有非通配符应用程序ID的配置文件。

来自Local and Push Notification Programming Guide

  

下一页显示您的有效申请ID。应用程序ID   由一个前缀为十个字符的应用程序包ID组成   Apple生成的代码。团队管理员必须输入捆绑包ID。对于   证书,必须包含特定的捆绑ID;你不能   使用“通配符”应用程序ID。