iOS为什么获取不到设备的DeviceToken

这篇博客主要讨论了在iOS开发中遇到设备无法获取DeviceToken的问题,包括检查是否使用真机测试、证书导入是否正确、App是否请求了用户的通知权限,以及如何通过错误处理和打印日志来定位问题。提供了在`didRegisterForRemoteNotificationsWithDeviceToken`和`didFinishLaunchingWithOptions`中获取DeviceToken的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

http://blog.segmentfault.com/zengfanren/1190000000376953

确认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串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值