11

Apple 建议使用 [UIDevice currentDevice].identifierForVendor。每次在 iOS 模拟器中运行他们的应用程序时,这个值都会改变。

我的应用程序中的初始功能要求我将设备识别为一种轻度身份验证形式。这使开发变得乏味,理想情况下,我可以在调试/运行会话中保持一个独特的价值。有什么建议可以做到这一点吗?

4

1 回答 1

19

清楚地记录了这个值会在模拟器中构建和运行时发生变化。在真实设备上,只有当用户从他们的设备中删除所有应用程序并重新安装应用程序时,它才会发生变化。

如果您希望模拟器应用程序在开发期间使用一致的标识符,您可以定义该 UUID 并将其仅用于模拟器构建:

NSUUID *devId;
#if TARGET_IPHONE_SIMULATOR
devId = [NSUUID initWithUUIDString:@"SOME-STATIC-UUID-STRING"];
#else
devId = [UIDevice currentDevice].identifierForVendor;
#endif

请注意,您需要将 SOME-STATIC-UUID-STRING 替换为真实的 UUID 字符串。

于 2013-09-19T21:36:37.267 回答