首先,请确保用的是真机测试,而不是模拟器。


然后,请确定您的证书是否导入正确

确认App首次运行有没有弹出打开通知的对话框


如果没有的话,请确定:


首先确认App是第一次安装运行没有弹出(系统只提示一次) 

可以把App删除后,再重新build运行一次

如果确实是第一次安装运行且没有弹出,请仔细按照证书配置的要求重新生成一遍Provisioning Profiles。


您还可以先通过  didFailToRegisterForRemoteNotificationsWithError:(NSError *)err

{
     
     NSString *error_str = [NSString stringWithFormat: @"%@", err];
     NSLog(@"Failed to get token, error:%@", error_str);
     
 }

确定下是什么错误。

如果有的话,请确定获取device  token的方法是正确的。


 方法1:在 didRegisterForRemoteNotificationsWithDeviceToken 中添加如下语句

 NSLog(@"%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]
                   stringByReplacingOccurrencesOfString: @">" withString: @""]
                  stringByReplacingOccurrencesOfString: @" " withString: @""]);
 方法2:在 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中 开启UMessage的Log,然后寻找deviceToken的字段

   //for log
   [UMessage setLogEnabled:YES];
 以上任一方式都可在控制台获取一个长度为64的测试设备的DeviceToken串








如果还是不行IOS首先用以下代码判断有木有错误:

didFailToRegisterForRemoteNotificationsWithError:(NSError *)err              
 {              
                   
     NSString *error_str = [NSString stringWithFormat: @"%@", err];              
     NSLog(@"Failed to get token, error:%@", error_str);              
                   
 }              
 同时:              
 - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken              
 {              
     [UMessage registerDeviceToken:deviceToken];              
                   
     NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken success");              
                   
     NSLog(@"%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]              
                   stringByReplacingOccurrencesOfString: @">" withString: @""]              
                  stringByReplacingOccurrencesOfString: @" " withString: @""]);              
                   
 }



  其中[UMessage registerDeviceToken:deviceToken];不能注释掉。
如果还是不行的话,可以再次对app进行卸载重装。