【发布时间】:2014-06-16 22:03:20
【问题描述】:
我正在为移动设备开发基于位置的问答 SDK。
当询问有关特定位置的问题时,服务器端会定位最相关的用户并将问题发送给该用户。如果用户没有回答,问题将发送给第二好的用户,依此类推。
问题是我的 SDK 可能安装在设备上的多个应用程序上,这意味着用户可以多次收到问题。
有没有办法检测我的 SDK 是否安装在多个应用上?我认为将 UDID 发送到服务器可能可行,但 iOS UDIDs differ between applications。
【问题讨论】:
-
这两个应用是来自同一个开发者还是不同的开发者?
-
这些应用可能属于不同的开发者。
-
这使得现代版本的 iOS 几乎不可能。对于 Apple 通过其 API 提供的每个 id,任何两个应用程序都会获得不同的 id。来自同一开发人员的两个应用程序可以使用共享的命名粘贴板在设备上相互检测到。但是来自不同开发者的两个应用程序不能共享一个通用的命名粘贴板。
-
您的 SDK 似乎需要支持应用程序 ID 概念 - 当应用程序开发人员使用您的 SDK 并注册设备时,他们还应该提供某种应用程序 ID(这可以是一个简单的 UUID 字符串- 编码到他们的应用程序中)然后当需要发送问题时,可以针对特定的应用程序 ID,该应用程序 ID 存储在您的数据库中的设备注册中
-
我认为它可以使用钥匙串,您可以拥有一个独特的钥匙串钥匙,您可以在其中保存您想要的任何内容,并且可以通过其他应用程序访问(如果可用)。因此,对于您的 SDK,假设如果有一个应用程序,它将使用唯一密钥在钥匙串中注册一些值,该唯一密钥仅在该密钥不存在且您知道的情况下才对您的 SDK 私有,因为您可以在钥匙串中保存任何值,您可以尝试多种适合您的选项和组合。