我有一个应用程序(不是游戏),应用程序在服务器数据库中为用户存储一些数据,因此我需要一个用户ID来处理。 由于我现在无法在ios设备中拥有永久ID,因此我使用了Google Play游戏登录方式。
用户打开应用程序并重定向到safari,在那里他登录google并返回到应用程序,我使用Google Play游戏ID来识别我的用户。
我的二进制文件因此受到拒绝,所以我可以使用iOS游戏服务,但它不是游戏,所以我很担心再次被拒绝,任何一个使用ios游戏服务只是为了获得用户的标识符在之前的非游戏应用中?
这是拒绝消息
我们发现您的应用中存在一个问题,导致用户体验质量低于Apple用户所期望的体验:
- 启动应用程序后,移动Safari中的网页会打开以进行登录,然后>将用户返回到应用程序。用户应该能够在不先打开> Safari的情况下登录。
获取用户标识符而不必在启动时打开浏览器窗口的任何其他方法? 最好是用户无需输入用户名或密码进行注册。
非常感谢任何帮助。
答案 0 :(得分:1)
这是iOS上的常见场景。许多应用程序,例如“愤怒的小鸟”,如果您想确保在卸载应用程序时不会丢失数据,则需要注册或使用第三方登录(如Facebook)或有时使用游戏中心ID。
因此,通常使用应用程序供应商ID来识别用户服务器端,直到您有另一个ID来识别它们。
当然,在卸载/重新安装应用程序时会重置供应商ID。游戏中心ID在每个应用程序中都是唯一的,但在安装之间是一致的,因此看起来像Apple希望您使用的游戏中心ID。
来自Working with Players in Game Center:
玩家标识符字符串唯一识别玩家
每个球员 帐户由包含的玩家标识符字符串唯一标识 在GKPlayer对象中。标识符字符串是在创建时创建的 玩家的账户首先被创建,永远不会改变,即使是其他人 帐户中的信息发生变化。因此,玩家标识符是 只有跟踪特定玩家的可靠方式。出于这个原因, Game Kit API在特定玩家需要的地方使用玩家标识符 待识别。如果Game Center需要识别特定的玩家 在游戏中,Game Kit API返回该玩家的标识符。您的 游戏使用玩家标识符从Game Center检索信息 关于那个球员。
除了在与Game的互动中使用玩家标识符 中心,你的游戏也应该随时使用玩家标识符 想要在本地存储有关特定玩家的数据。例如,如果 你的游戏存储数据以跟踪玩家的进度(例如在 设备,在您自己的服务器上或在iCloud上),使用播放器标识符 区分在同一设备上玩的多个玩家。那 方式,如果不同的玩家登录设备,你可以立即 通过显示特定于该播放器的内容来个性化体验。
卸载时失去进度是标准行为。即使在通过注册或登录卸载或共享设备之间的进度之后保存进度也是一种额外的好处。