为什么UUID在模拟器中没有?

时间:2017-05-10 15:56:18

标签: ios swift tvos

我正在使用 Swift 完全开发一个tvOS应用程序。

AppDelegate.swift,我尝试在UUID下打印willFinishLaunchingWithOptions

但是,错误消息显示为fatal error: unexpectedly found nil while unwrapping an Optional value

该应用程序实际上功能齐全,之前运行良好。我重置模拟器后发生了这个错误。

以下是我UUID的方式。

let UUIDValue = UIDevice.current.identifierForVendor!.uuidString
let newuuid = UserDefaults.standard.object(forKey: "uuid") as? String
print ("This device uuid is " + newuuid!) // error message happens here

我相信每个设备都应包含 UUID ,但它是如何发生的?

3 个答案:

答案 0 :(得分:2)

您正试图从newuuid获取UserDefaults

let newuuid = UserDefaults.standard.object(forKey: "uuid") as? String

但重置模拟器后UserDefaults中的条目为零,并且没有为键设置值" uuid"爱好。

这没有多大意义,但解决了这个问题:

let UUIDValue = UIDevice.current.identifierForVendor!.uuidString
UserDefaults.standard.setValue(UUIDValue, forKey: "uuid") // add entry in UserDefaults
let newuuid = UserDefaults.standard.object(forKey: "uuid") as? String
print ("This device uuid is " + newuuid!)

答案 1 :(得分:1)

UUID仅针对真实设备生成,而不针对iOS模拟器生成,因为硬件设备已在Apple网络中注册以访问设备令牌。

答案 2 :(得分:0)

  

模拟推送的UDID和设备令牌,我们可以发送推送   到模拟器。它们仅用于发展前景。 UDID保持不变   改变模拟器。消息,应用程序链接,邮件也一样   模板可以在模拟器上看到bur无法测试它。每次重新安装应用程序时都会更改.UDID