【问题标题】:iOS DeviceCheck API - GenerateToken gives error Code 0iOS DeviceCheck API - GenerateToken 给出错误代码 0
【发布时间】:2018-08-11 04:56:00
【问题描述】:

我正在尝试实现新的 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")
        }
    }

【问题讨论】:

  • 嘿!你碰巧解决了这个问题吗?谢谢!
  • 不,我放弃了,走了一条不同的路

标签: ios devicecheck


【解决方案1】:

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

【讨论】:

  • 你必须得到准确的时间还是只是日期没问题?
  • 我继续使用准确的时间。经过一些测试后,您似乎有一个 +/- 5 分钟的窗口,您不会得到错误 0。
  • 明白了,感谢您的更新。这解释了为什么我之前收到此错误。
  • 我在通过 device.isSupported 且日期和时间自动更新且在 5 分钟窗口内正确的设备上收到此错误。我们在开发者门户中正确设置了应用标识符。不知道为什么它不起作用:(
【解决方案2】:

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

【讨论】:

  • 我在通过 device.isSupported 且日期和时间自动更新且在 5 分钟窗口内正确的设备上收到此错误。我们在开发者门户中正确设置了应用标识符。不知道为什么它不起作用:(
  • 我在某些设备上也遇到了这个错误。你找到解决办法了吗?
  • 您设备的操作系统版本是多少?
  • 我使用 iPhone6s 和 iOS 11.3。
猜你喜欢
  • 1970-01-01
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 2011-05-23
  • 2016-07-23
  • 2015-12-09
  • 1970-01-01
相关资源
最近更新 更多