gpt4 book ai didi

iphone - 不用 [[UIDevice] uniqueIdentifier] 安全实现三路和四路设备同步?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:55 24 4
gpt4 key购买 nike

事实证明,切换到自定义生成的设备 UUID 确实是一场噩梦!我希望有人以前遇到过这个问题并且可能知道处理它的方法。

假设用户有一个包含 500,000(小)记录数据集的应用程序,简单地复制设备的整个数据库并合并它们是不可行的。用户将此应用程序安装在:

  1. 苹果手机
  2. MacBook
  3. Android 平板电脑。

当连接到同一个物理网络时,每个设备都可以看到对方并可以启动同步。 实现三向数据同步(不依赖于中央服务器或互联网连接)。

  1. 每台设备都保留一份带有时间戳的更改列表。
  2. 每台设备都知道上次与其他两台设备同步的时间。
  3. 当一台设备发现另一台设备时,它会发送自上次与该设备通话以来的所有已知更改。
  4. 如果发现新设备,只需发送所有输入的数据即可。

如果用户备份他们的 iphone 或 ipad,并将其恢复到另一个 iphone 或 ipad,就会出现问题。在这种情况下,我们最终会遇到一个用户,该用户在本地网络上拥有两个具有相同 UUID 的设备。更新最终(随机)转到一个或另一个相同标识的设备。

我知道我们现在可以继续使用设备唯一标识符,但我担心一旦它消失了会发生什么!

最佳答案

在应用程序启动时,您在应用程序文档文件夹中搜索名为 udid.txt 的文件。如果此文件不可用,请创建它并生成您的自定义 UDID,将其保存到此文件中。使用以下函数向该文件添加标志,以将其从备份和同步例程中排除。

#include <sys/xattr.h>
- (void) AddSkipBackupAttributeToFile: (NSURL*) url
{
  u_int8_t b = 1;
  setxattr([[url path] fileSystemRepresentation], "com.apple.MobileBackup", &b, 1, 0, 0);
}

此解决方案的问题是用户可能会使用 iPhoneExplorer 或类似的东西来更改 UDID。尝试加密或隐藏文件以防止他这样做。

注意:仅适用于 iOS 5.0.1。

关于iphone - 不用 [[UIDevice] uniqueIdentifier] 安全实现三路和四路设备同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7994169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com