【问题标题】:Strange Thing Going on with UUID on messages extension消息扩展上的 UUID 发生的奇怪事情
【发布时间】:2016-09-02 02:31:28
【问题描述】:

我正在创建这个消息扩展,它是一个游戏。

当我在didBecomeActiveWithConversation 上收到对话时,我会获取我的 UUID 和对手的 UUID,例如:

myUUID = [conversation.localParticipantIdentifier UUIDString];
opponentUUID = [[conversation.remoteParticipantIdentifiers firstObject] UUIDString];

此时如果我打印这个,我会得到类似的东西

myUUID = 3A00236E-606E-41BE-BD11-97658AF13434
opponentUUID = 794DC7EB-E0AF-46CD-9BF0-5B6D39CC6773

然后我在游戏中移动并发送给对手。

在模拟器上,我从“Kate”切换到“John Appleseed”。

didBecomeActiveWithConversation 方法再次触发时,现在对于另一个用户,我再次获取两个 UUID。结果如下:

myUUID = 3A00236E-606E-41BE-BD11-97658AF13434
opponentUUID = B4621E05-4407-443E-9526-C8F0C82753D6

什么? myUUID 和以前一样,而我的对手UUID 完全不同??通过在消息上切换用户,我希望看到条目被还原。这个怎么可能?错误?

【问题讨论】:

    标签: ios ios10 ios-messages-extension msmessage


    【解决方案1】:

    Apple 不喜欢发布可用于识别用户身份的数字,而不是严格必要的数字。在这种情况下,localParticipantIdentifier 属性对于每台设备(因此 A 在与之交谈的每台设备上都有不同的标识符)和每次应用安装(因此两个不同的应用将看到两个不同的标识符)都是唯一的。

    事实上,如果用户删除并重新安装你的扩展程序,标识符将会改变——就像UIDevice上的identifierForVendor一样。

    From the docs

    此 UUID 仅限于此设备。只要启用了扩展,它就会保持稳定。如果扩展程序被禁用并重新启用,或者包含的应用程序被删除并重新安装,则本地参与者的 UUID 会更改。

    由于您使用的是模拟器,因此这种特殊情况变得复杂,即使它是一个设备,Apple 也将其操纵为看起来像两个帐户。我怀疑当你在两台真实设备上运行相同的代码时,你会发现两边都有两个完全不同的数字。

    值得补充的是,消息标识符有several open radars,尤其是this one,所以你可能是对的,这是一个错误。

    【讨论】:

    • 好的,我理解隐私,但这太疯狂了。用户正在与对方玩游戏,并且至少要与对方交换IDS。如果您在消息上与另一个人交谈,另一方的人知道您的姓名/昵称/消息标识,因此阻止对方知道您的 UUID 是无稽之谈,并且因为您必须按发送来发送消息,所以不可能发送垃圾邮件,除非你开发了一个机械手机器人,可以将消息点击到一个巨大的列表中,然后每次都按发送......无论如何,谢谢!
    • 所有这些 bug 最可怕的是,Apple 发布了 iOS 10 和 Xcode 8 Golden Master,它们仍然包含这个 bug,这意味着,他们可能会发布破坏 iOS 10 的主要功能之一,正如我们之前多次看到的那样,这是 Apple 的典型特征。很伤心。
    • 您找到解决方法了吗?使用其他东西而不是 UUID?他们这样做真的很奇怪。谢谢
    • 我在模拟器中遇到了同样的问题,myUUID (localParticipantIdentifier) 对于“Kate”和“John Appleseed”都是一样的,这是模拟器中的一个主要错误,我只是不敢相信他们在 Xcode 中发布了这个问题。使用模拟器创建带有此错误的玩家回合的游戏是不可能的。我还尝试生成一个 UUID,然后将其存储在 UserDefaults 中,但 UserDefaults 也在“Kate”和“John Appleseed”之间共享。还有其他解决方法吗?
    猜你喜欢
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2022-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2022-01-22
    • 2011-11-25
    相关资源
    最近更新 更多