iOS DeviceCheck API - GenerateToken给出错误代码0

时间:2018-03-02 22:17:40

标签: ios devicecheck

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

这是一个组织的现有应用程序 - 从文档中可以看出,唯一的配置要求是确保在Apple开发人员门户中设置App 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")
        }
    }

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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