繁体   English   中英

开发模式iOS 9.1中单个bundleId的多个设备令牌

[英]Multiple device tokens for single bundleId in development mode iOS 9.1

我正在使用Xcode 7.1.1iOS 9.1
我正面临这个奇怪的问题。 我必须在应用程序中实现推送通知。 我已成功为开发模式启用了推送通知,成功创建了证书和配置文件。

在此处输入图片说明

我在我的应用程序中保留了相同的捆绑软件ID。 该代码在我的appdelegate类中也写得很好

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    let pushSettings = UIUserNotificationSettings(forTypes: .Alert, categories: nil)
    UIApplication.sharedApplication().registerUserNotificationSettings(pushSettings)
        UIApplication.sharedApplication().registerForRemoteNotifications()

    _ = UIApplication.sharedApplication().applicationIconBadgeNumber
    UIApplication.sharedApplication().cancelAllLocalNotifications()
    UIApplication.sharedApplication().applicationIconBadgeNumber = 0


    return true
}

func application( application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData ) {


    let characterSet: NSCharacterSet = NSCharacterSet( charactersInString: "<>" )

    let deviceTokenString: String = ( deviceToken.description as NSString )
        .stringByTrimmingCharactersInSet( characterSet )
        .stringByReplacingOccurrencesOfString( " ", withString: "" ) as String

    print( deviceTokenString )
    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setObject(deviceTokenString, forKey: "device_token")
    defaults.synchronize()


}
func application( application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError ) {

    print( error.localizedDescription )
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {

}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
}

我成功获取了设备令牌并进行了打印。 但是,每当我删除该应用程序并重建并重新安装它时,设备令牌都会更改。 但是,在我删除该应用程序之前,它保持不变。 但是,每次删除时,我都会得到一个新的设备令牌。 这在iOS 8.x中没有发生。 我不知道为什么它会在iOS 9.1上发生。
iOS 8.x的情况下,即使删除应用程序,我也使用相同的设备令牌。 任何人都面临过这个问题。 这正常吗
注意 :我将xcode 7.1.1,iPhone和iOS 9.1一起使用,并且仅使用开发证书和配置文件。
任何帮助表示赞赏。 谢谢

参考: 本地和远程通知编程指南

设备令牌可以更改,因此您的应用在每次启动时都需要重新注册。

因此,Apple从未保证同一台设备的设备令牌相同,我只是建议您调整逻辑。 谁知道这在以后的iOS版本中将如何表现。 这不是错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM