我正在尝试实现新的iOS 11 DeviceCheck API(https://developer.apple.com/documentation/devicecheck(,但令牌生成总是失败。我已经尝试过模拟器和iPhone SE,带有wifi和移动数据。 设置中的 Apple ID 是我的普通非沙盒帐户。
这是组织的现有应用 - 从文档中听起来,唯一的配置要求是确保在 Apple 开发人员门户中设置应用 ID。
还有其他人有这个问题吗?
确切的错误消息是:
无法完成操作。(com.apple.devicecheck.error error 0.(
这是我正在使用的代码,没什么好看的。
if #available(iOS 11.0, *) {
let device = DCDevice.current
if (device.isSupported) {
device.generateToken(completionHandler: { (data, error) in
if let token = data{
print("token: (token)")
}else if let error = error{
print("error: (error.localizedDescription)")
}
})
} else {
print("devicecheck not supported")
}
}
就我而言,此错误是由于我的iPhone时间严重不同步引起的。我手动将设备的时间更改为实际的当前时间("设置"→"常规"→"日期和时间"(。之后,错误消失了,我能够生成令牌。
你的代码对我来说似乎很好。问题是模拟器。它不会通过 device.isSupported。您需要在真实设备上运行它。