Я использую Xcode 7.1.1 и iOS 9.1.
Столкнулся с этой странной проблемой. Мне нужно реализовать push-уведомления в приложении. Я успешно создал сертификаты и профили подготовки с включенными push-уведомлениями для режима разработки.
Я сохранил тот же идентификатор пакета в своем приложении. Код тоже отлично написан в моем классе 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 и использую только сертификаты разработки и профиль подготовки.
Приветствуется любая помощь. Спасибо