ios - 当应用程序直接在设备中运行并创建 ipa 文件时,为什么设备 token 生成不同?

标签 ios iphone apple-push-notifications

在设备中运行我的应用程序时,我们获得的设备 token 不同,但生成 ipa 相同的应用程序并安装到同一设备,但我们获得不同的设备 token 。

Screenshot

enter image description here

这是我们使用的代码:

NSString *tempStr = [NSString stringWithFormat:@"%@",deviceToken]; 
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 
NSString *apnID = [tempStr stringByReplacingOccurrencesOfString:@" " withString:@""]; 

NSLog(@"tempStr %@", tempStr); 
if(tempStr.length ==0)
{
   // for simulator 
   tempStr = @"123"; 
} 
[standardUserDefaults setObject:tempStr forKey:@"DeviceToken"];

请指导我们,这种行为背后的原因可能是什么。

最佳答案

从您的代码片段来看,您存储在 userDefaults 中的代码片段似乎没有被设备 token 的新值替换。您在设备控制台中获得的是正确的设备 token 。它反射(reflect)了你的 NSLog(@"tempStr %@", tempStr); 并且直接在 Xcode 运行中显示的那个来自用户 默认值。 [standardUserDefaults setObject:tempStr forKey:@"DeviceToken"]; 更新:一般Device token格式如下。

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{
NSLog(@"My token is: %@", deviceToken);
NSString *strDeviceToken=[NSString stringWithFormat:@"%@",deviceToken];
strDeviceToken=[strDeviceToken stringByReplacingOccurrencesOfString:@"<" withString:@" "];
strDeviceToken=[strDeviceToken stringByReplacingOccurrencesOfString:@">" withString:@" "];
strDeviceToken=[strDeviceToken stringByReplacingOccurrencesOfString:@" " withString:@""];
if(strDeviceToken.length ==0){
    // for simulator
    strDeviceToken = @"123";
}
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setValue:strDeviceToken forKey:@"DeviceToken"];   }

关于ios - 当应用程序直接在设备中运行并创建 ipa 文件时,为什么设备 token 生成不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27793356/

相关文章:

android - 同一个服务器代码能否同时向 APNS 和 GCM 发送通知

php - 是否可以将音频文件与 apns 推送消息一起发送

ios - 在 Swift 中生成图像

ios - 带有滑动和页面控制的图片幻灯片

iphone - 删除/隐藏 UIDatePicker 的最小/最大日期范围之外的行?

iphone - 使用 iPhone 应用程序将照片上传到任意 FTP

ios - Swift 中没有类型的匿名函数

iphone - 如何在 iOS 应用程序中使用 "open in..."功能?

iphone - UITabBarController - 如何在启动时选择 "no tabs"?

iphone - 如何在应用程序关闭时通过在 iPhone 中发送推送通知来执行某些操作