【问题标题】:How can an iOS developer store app data in a way that survives deletion of the app?iOS 开发人员如何以在删除应用程序后仍然存在的方式存储应用程序数据?
【发布时间】:2018-03-20 18:08:30
【问题描述】:

我的 iPhone 上有 Kaiser Permanente 健康应用程序。当我打开它时,我的用户名已预先填写,并提示我使用 Touch ID 登录。

现在我按住主屏幕上的图标以从手机中删除该应用程序。 iOS 警告我这样做会删除所有应用程序数据。我接受。

接下来,我从应用商店重新安装 Kaiser Permanente 应用。不知何故,我的用户名仍然是预填充的,我仍然可以使用 Touch ID 登录。这违背了我的期望。

我认为这可能与 iCloud 有关,但我注意到以下几点:

  • 在“设置”>(帐户)>“iCloud”中,钥匙串已“关闭”
  • 在设置 >(帐户)> iCloud 中,Kaiser Permanente 未列在“使用 iCloud 的应用程序”下
  • 在“设置”>(帐户)>“iCloud”>“管理存储”>“备份”>“iPhone”中,我在“选择要备份的数据”下取消了 Kaiser Permanente。
  • 在“设置”>“帐户和密码”>“应用程序和网站密码”中,列表为空。

作为用户,这是非常出乎意料的。这是预期的开发人员能力吗?它是如何完成的?

【问题讨论】:

  • 您是否从该开发者那里安装了任何其他应用程序?如果是这样,他们可能正在使用组钥匙串。
  • 删除应用时不会清除keychain中存储的应用数据。
  • 应用程序在加载时可能会根据您的设备令牌从服务器获取信息。
  • 通知设备令牌中的设备令牌?这将是一个不好的做法,但它可能是。
  • 否,通过使用 OpenUDID,您的设备令牌可能在您卸载应用程序然后重新安装时保持不变,可能是应用程序使用相同的库或类似的东西。 github.com/ylechelle/OpenUDID

标签: ios iphone privacy


【解决方案1】:
  1. 卸载应用时不会清除钥匙串中存储的应用数据。所以它可能正在使用钥匙串。

  2. 可能是您从同一开发者那里安装了任何其他应用程序。如果是这样,他们可能正在使用组钥匙串。

  3. 应用程序可能在根据您的设备令牌加载时从服务器获取信息。使用 OpenUDID,当您卸载应用程序然后重新安装时,您的设备令牌可能保持不变,可能是应用程序使用相同的库或类似的东西。 github.com/ylechelle/OpenUDID

【讨论】:

  • 1.有没有办法以非编程方式检查这个?听起来用户无法访问或删除完整的钥匙串? 2. 该开发商没有安装其他应用程序。 3. 是否允许应用开发者这样做?
  • 1.我认为我们不能以非编程方式检查这一点。 2. 我们可以使用 Keychain-Dumper 小技巧擦除钥匙串数据。参考stackoverflow.com/questions/16336449/… 3.我认为开发者可以这样做,这是苹果允许的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
相关资源
最近更新 更多