感谢您抽出时间和兴趣阅读这篇文章,希望您能帮我解决问题。
我需要一个iOS的唯一用户标识符。我的意思是一个独特的字符串,苹果提供的,对于用户而言是唯一的,而不是设备,也就是说它将在多个设备上保持不变。我想过苹果ID或类似的东西,但这是不可能的,因为苹果没有提供它(至少我不知道),但我想要类似的东西。
它不能是UDID,因为(除了被弃用)它不能跨设备保持持久性。我想要这样做是为了验证用户,而不需要用户登录或注册。这是可能的,因为有些应用程序可以这样做。我没有使用另一台设备登录或任何操作,但它仍认证了我。我曾以为它是由苹果ID实现的,但这是不可能的。
我查看了此答案:iOS unique user identifier。看起来这可能是解决方案,但我不太明白,因为我不知道如何使其对每个新用户都是唯一的(能够区分多个用户以及在不同设备上的相同用户)。
我真的很感激大家阅读并尝试帮助。
附注:
谢谢您如此快速地回答!我已经读了很多遍,但我就是不明白。你们能帮我更好地理解一下吗?
我的理解是这样的:
1. 创建一个UUID(每次安装都会更改)。 2. 使用默认服务(我认为应该将其与应用程序ID-com.bla.bla-关联),以及默认帐户"users"将其存储到Keychain中(据我所知,保存在Keychain上的值是本地的)。这将是本地的,因此每个安装都将执行此操作,并为每个安装使用不同的UUID(不一定是每个用户)。 3. 将UUID保存到NSUserDefaults中。 4. 将UUID保存到云公共数据存储中(云数据存储中的UUID、Keychain和NSUserDefaults应该是相同的)。
因此,如果运行了5个安装,则Cloud的公共数据存储应如下所示:
An Array of 5 values:
[
XXXX-EEEEE-FFFFF,
SFSDFFWE-WERW-SDFS,
XXXX-XXXXX-XXXXX,
ZZZZZ-ZZZZ-ZZZZX,
XZXZZX-ZXZXZXS-ADADS
]
5.-每次运行应用程序时,都会执行所有这些操作,首先检查公共云存储中是否有存储的值。这里我感到困惑的是,不同设备如何知道哪个UUID是你的?我的意思是,有5个不同的UUID可以选择。也许不应该将其保存在公共数据存储中,而应该保存在私人数据存储中,但为此,您还需要识别每个用户。这就是我感到困惑的地方。
如果未设置UUID,则执行最后4个步骤。
所以,我对第5步感到困惑,大多数人理解这个解决方案,无需任何更多的解释,所以我必须无知于某些东西的工作方式,可能是云服务吗?我认为问题可能是我不理解iCloud的工作原理以及它如何存储其值。我只是不明白第X个运行该应用程序的第5(随机数字,它可能是第2或第2000个)设备将如何知道UUID XXX...是用户X的UUID,而不是用户Z的UUID。
再次感谢您快速回答,我以为可能要等几天,而不是几分钟。请原谅我的无知,我在这方面有点新手,但我想学习。已经困扰了我几天这个问题。