应用程序是否会在再次重新安装时提供不同的设备令牌
does app give different device token on re-installing again
我记得,设备令牌在 iPhone 重新安装后永远不会改变。
但是最近(尤其是 iOS 9 日),我注意到如果我重新安装应用程序,设备令牌会发生变化。
这个设置是苹果做的还是我遗漏了什么?
我必须知道这一点,因为这对我来说非常重要,因为我正在为特定用户发送推送以通知他们的更新。
也无缘无故有许多不需要的设备令牌。
注意
我在 App Delegate 中调用下面的网络服务
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
// sending it to online database for my record
}
w=13=shrtfm:
w=15=shw=11=sh
w=13=shw=10=shw=11=sh
是 iOS9 Apple 表示设备令牌可能会在每次安装您的应用程序时发生变化。所以最好的方法是在 每次启动时重新注册设备令牌 。
Here 是关于更改设备令牌
的 link Apple 文档
是的,每次安装应用程序时可能会更改。您需要在每次启动应用程序时更新 device_token。
您需要找到自己的方式来跟踪用户。以下是您的方法和建议的供应商标识符的问题:
- 设备
push token
可以随时更改。您可以在应用程序启动期间跟踪此更改并要求服务器切换令牌,但是直到此时将在旧令牌上发送的消息将丢失。
identifierForVendor
- 唯一标识符的来源也非常不可靠,因为它在很多情况下都会发生变化。
The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. The value can also change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution. Therefore, if your app stores the value of this property anywhere, you should gracefully handle situations where the identifier changes.
对于单个设备,您可以使用钥匙串作为持久标识符存储的来源。您可以为用户生成新的唯一标识符(例如使用 NSUUID
)并将其存储在钥匙串中(如果尚不存在)。如果访问组将为存储的项目配置并与您的所有应用程序一起重复使用 - 您将可以从用户设备上的应用程序访问存储的唯一标识符。如果配置正确,Keychain 中的项目将存储在加密的用户设备备份中,甚至会在他的新设备上恢复。
我记得,设备令牌在 iPhone 重新安装后永远不会改变。
但是最近(尤其是 iOS 9 日),我注意到如果我重新安装应用程序,设备令牌会发生变化。
这个设置是苹果做的还是我遗漏了什么?
我必须知道这一点,因为这对我来说非常重要,因为我正在为特定用户发送推送以通知他们的更新。
也无缘无故有许多不需要的设备令牌。
注意
我在 App Delegate 中调用下面的网络服务
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
// sending it to online database for my record
}
是 iOS9 Apple 表示设备令牌可能会在每次安装您的应用程序时发生变化。所以最好的方法是在 每次启动时重新注册设备令牌 。
Here 是关于更改设备令牌
的 link Apple 文档是的,每次安装应用程序时可能会更改。您需要在每次启动应用程序时更新 device_token。
您需要找到自己的方式来跟踪用户。以下是您的方法和建议的供应商标识符的问题:
- 设备
push token
可以随时更改。您可以在应用程序启动期间跟踪此更改并要求服务器切换令牌,但是直到此时将在旧令牌上发送的消息将丢失。 identifierForVendor
- 唯一标识符的来源也非常不可靠,因为它在很多情况下都会发生变化。The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. The value can also change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution. Therefore, if your app stores the value of this property anywhere, you should gracefully handle situations where the identifier changes.
对于单个设备,您可以使用钥匙串作为持久标识符存储的来源。您可以为用户生成新的唯一标识符(例如使用 NSUUID
)并将其存储在钥匙串中(如果尚不存在)。如果访问组将为存储的项目配置并与您的所有应用程序一起重复使用 - 您将可以从用户设备上的应用程序访问存储的唯一标识符。如果配置正确,Keychain 中的项目将存储在加密的用户设备备份中,甚至会在他的新设备上恢复。