3

我正在尝试实现新的 iOS 11 DeviceCheck API ( https://developer.apple.com/documentation/devicecheck ),但令牌生成总是失败。我已经在模拟器和 iPhone SE 上尝试过,带有 wifi 和移动数据。设置中的 Apple ID 是我的普通非沙盒帐户。

这是组织的现有应用程序 - 从文档看来,唯一的配置要求是确保在苹果开发人员门户中设置应用程序 ID。

还有谁有相同的问题吗?

确切的错误信息是:

操作无法完成。(com.apple.devicecheck.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")
        }
    }
4

2 回答 2

3

就我而言,这个错误是由于我的 iPhone 时间严重不同步造成的。我手动将设备的时间更改为实际的当前时间(设置 → 常规 → 日期和时间)。之后,错误消失了,我能够生成令牌。

于 2018-04-24T17:47:42.887 回答
1

你的代码对我来说似乎很好。问题是模拟器。它不会通过 device.isSupported。您需要在真实设备上运行它。

于 2018-05-21T08:40:56.293 回答