我们正在构建一个应该在服务器中存储一些信息的iPhone应用程序。
我们计划使用iPhone ID存储此信息,但我们遇到了一个问题:如果用户从他的iPhone 3Gs切换到新的iPhone 4G,iPhone ID自然会改变,但用户是还是一样。
从iPhone应用程序中有没有办法检测某种用户ID而不是iPhone ID,所以我们在保存服务器中的信息时坚持这一点?
注意:我们确实可以执行注册/登录机制,因此当用户登录时,从服务器中提取正确的信息,但我们认为如果我们可以在没有登录的情况下做到这一点很棒。
谢谢!
答案 0 :(得分:3)
您可以使用Game Center对用户进行身份验证,但不幸的是,它仅适用于iOS 4.1及更高版本。
您可以使用GKLocalPlayer的authenticateWithCompletionHandler方法验证登录到设备的用户。如果用户已经登录,则用户已通过身份验证,之后您可以使用以下方式询问其ID:
NSString* userId;
userId = [[GKLocalPlayer localPlayer] playerID];
然后,您可以使用此ID查找具有多个设备的用户。请注意,同一设备中也可以有多个游戏中心用户。
如果用户尚未登录游戏中心iOS处理登录和注册,但用户可以选择不登录。
您可以在Game Kit Programming Guide找到更多信息。
答案 1 :(得分:1)
不幸的是,您的应用无法访问,这在两个不同的设备/同一用户中是唯一的。您甚至无法获得App Store用户ID。
不幸的是,您必须以某种方式将其绑定到系统上的帐户。
您可以查看推送通知系统(APNS)。 APNS提供您可以使用的设备令牌。但是,它不是用户唯一的,而是设备唯一的。所以这仍然没有给你一个解决方案。