ios - CFUUIDCreate、iOS版本使用统计和用户权限

标签 ios permissions uuid

我正在考虑使用 CFUUIDCreate用于在我的服务器中构建数据库的 API,以衡量我的每个应用程序的用户百分比正在运行哪个版本的 iOS(帮助我决定 future 开发的 iOS 最低支持版本)。

我的问题是:我是否应该请求用户允许发送( 匿名 ) UUID/iOS 版本 数据对到我的服务器,还是可以自动完成?

我之所以问是因为我可以在安全方面打赌,无论如何都可以问,但大多数用户会对技术细节感到害怕,很可能会拒绝。此外,UIAlertView 中的文本越长,用户越有可能不会阅读它。

如果我不问,Apple 会拒绝我的应用吗?即使他们不这样做,您认为我是否应该始终要求用户允许发送此 匿名 数据?

实现这种功能的每个人都有什么经验?

最佳答案

好的,这就是我要做的,基于 Nikolai Ruhe 的回答,但改进了我刚刚发现的一个陷阱。

假设用户 John Doe 在他运行 iOS 5.0 的 iPhone 上安装了我的应用程序。

在第一次启动时,该应用程序向我的服务器发送了一个匿名请求,该请求有效地将“运行 iOS 5.0 的设备”的计数器增加了一个。应用程序会记录此事件和 iOS 版本(在用户默认值或钥匙串(keychain)中),并且只要本地存储的操作系统版本字符串与当前版本字符串(由系统返回)相等,就不会发送任何进一步的请求。

下周,John 升级到 iOS 5.1 并启动了我的应用程序。该应用程序检测到操作系统版本差异并向我的服务器发送新请求。

但是,如果这仅将一台设备添加到“iOS 5.1”人群中,那么 John 的 iPhone 现在会被计算两次:一次是“运行 5.0 的设备”,一次是“运行 5.1 的设备”。

因此,要解决此问题,我的 HTTP 请求应如下所示:

http://myserver.com/my_stats_scripts/index.php?app_id=com.myCompany.myApp&new_os_ver=5.1&old_os_ver=5.0

所以我的数据库可以增加 5.1 设备的数量和减少 5.0 设备的数量减一。

当然,在第一次请求时,HTTP 参数 old_os_ver设置为空,服务器将其视为新设备。

如果我做对了,我就不再需要 UUID。但我仍在偷偷地将系统信息发送到我的服务器。我想我也会在使用条款中披露这一点。

关于ios - CFUUIDCreate、iOS版本使用统计和用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11184460/

相关文章:

javascript - Java UUID.nameUUIDFromBytes 要用 JavaScript 编写?

node.js - Typescript Node.js 应用程序中的 guid/uuid

ios - 在 iOS 上通过 Node js 在推送通知中发送表情符号

linux - 为什么我不能 `mv` 没有额外写入权限的目录

Android 监听没有 UUID 的连接

php - 必须使用事件访问 token 来查询有关当前用户的信息 |访问 token 似乎有效

powershell - 使用icacls设置文件夹权限

ios - 了解复杂的 block 语法

ios - Swift 中的 UIAlert 在注销后自动消失

ios - Swift:将 [String] 拆分为具有给定子数组大小的 [[String]] 的正确方法是什么?