iOS应用程序用户ID没有永久设备ID

标签 ios google-play-services appstore-approval

我有一个应用程序(不是游戏),该应用程序在服务器数据库中为用户存储一些数据,所以我需要一个用户 ID 来使用。 由于我现在无法在 ios 设备中拥有永久 ID,因此我使用了 google play games 登录方法。

用户打开应用程序并重定向到 safari,他在其中登录 google 并返回到应用程序,我使用 google play games ID 来识别我的用户。

我的二进制文件因此被拒绝,所以我可以使用iOS游戏服务,但它不是游戏,所以我担心再次被拒绝,任何人使用ios游戏服务只是为了获取用户的标识符之前在非游戏应用中使用过吗?

这是拒绝消息

We noticed an issue in your app that contributes to a lower quality user >experience than Apple users expect:

  • Upon launching the app, a web page in mobile Safari opens for logging in, then >returns the user to the app. The user should be able to log in without opening >Safari first.

还有其他方法可以获取用户的标识符而无需在启动时打开浏览器窗口吗? 如果用户注册时不需要输入用户名或密码,那就最好了。

非常感谢任何帮助。

最佳答案

这是 iOS 上的常见场景。如果您想确保在卸载应用程序时不会丢失数据,许多应用程序(例如“愤怒的小鸟”)需要注册或使用第三方登录(例如 Facebook),有时还需要使用 Game Center ID。

因此,通常使用应用供应商 ID 来识别用户服务器端,直到您有另一个 ID 来识别它们为止。

当然,供应商 ID 会在卸载/重新安装应用程序时重置。每个应用程序的 Game Center ID 都是唯一的,但在安装之间是一致的,因此 Apple 似乎更希望您使用 Game Center ID。

来自Working with Players in Game Center :

Player Identifier Strings Uniquely Identify Players

Every player account is uniquely identified by a player identifier string contained within a GKPlayer object. The identifier string is created when the player’s account is first created and never changes, even if other information in the account changes. Thus, player identifiers are the only reliable way to track a particular player. For this reason, the Game Kit API uses player identifiers wherever a specific player needs to be identified. If Game Center needs to identify a specific player in your game, the Game Kit API returns that player’s identifier. Your game uses a player identifier to retrieve information from Game Center about that player.

In addition to using player identifiers in your interactions with Game Center, your game should also use the player identifier whenever it wants to store data locally about a specific player. For example, if your game stores data to track a player’s progress (such as on the device, on your own server, or on iCloud), use player identifiers to distinguish between multiple players playing on the same device. That way, if a different player signs into the device, you can immediately personalize the experience by showing content specific to that player.

卸载时丢失进度是标准行为。即使在卸载后也可以保存进度,或者通过注册或登录在设备之间共享进度是一个额外的好处。

关于iOS应用程序用户ID没有永久设备ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31927716/

相关文章:

ios - 现有系统上的 Homekit 实现

iphone - iOS 应用程序因查询电子邮件按钮而被拒绝

ios - 显示带有弹性动画的 UIView

带键盘的 iOS PresentViewController

c# - AndroidPublisherService - Play 开发者 API 客户端 - 由于凭据错误,上传 aab 失败

android - Google Play 撤销了测试订阅

ios - 出售离线 map 作为应用内购买

ios - 更改应用名称

objective-c - 执行获取请求 :error: causes an uncaught exception 'NSRangeException'

android - Google Play 游戏服务 playerId 是静态的吗