在上次更新之前,我可以在模拟器上使用 CloudKit 管理数据,但上次更新后,它不起作用,而且如果我在 iCloud Drive 中添加文件,模拟器中的文件夹也不会更新。
在我的函数中,我收到 canNotComplete 状态:
defaultContainer.requestApplicationPermission(.userDiscoverability, completionHandler: {status, error in
switch status {
case .denied:
DispatchQueue.main.async {//necessario perchè lo fa in background e potrebbe crashare senza questo
completionHandler(status)
self.showSettingsAlert()
}
case .initialState:
DispatchQueue.main.async {
completionHandler(status)
self.showSettingsAlert()
}
case .couldNotComplete:
DispatchQueue.main.async {
completionHandler(status)
self.showSettingsAlert()
}
print("@couldNotComplete requestApplicationPermission (func getUserPermission) - probabilmente non ha un account icloud")
case .granted:
completionHandler(status)
@unknown default:
print("@unknown requestApplicationPermission (func getUserPermission)")
}
})
但问题出在 token 上:
Optional("Couldn\'t get an authentication token")
你也有同样的问题吗?
最佳答案
抱歉我无法回答,但我可以说这不仅仅是你;还有。这也开始发生在我身上。我知道的一些事情:
最初一切正常,然后在某个时刻我被要求重新输入我的 iCloud 密码(“Apple ID 验证”)。
模拟器接受密码,但过了该密码,CloudKit(以及更多)就会停止工作。
以下是 CloudKit 返回的错误:Optional(
) 我尝试使用“功能 | 触发 iCloud 同步”来查看是否能让 iCloud 开始工作,但没有。
在 iPhone 模拟器上注销似乎永远不会结束;到目前为止,我一直不得不使用“删除所有内容和设置”。之后一切又恢复正常,但时间不会太长。
在 iPad 模拟器上注销曾经有效。重新登录后,一切又开始工作了。嗯,到目前为止。 :-)
我正在使用测试帐户。我想知道苹果是否认为这是一个垃圾邮件帐户,所以我登录了https://appleid.apple.com并打开双因素身份验证等。这些都没有什么区别。
以下是我计划尝试的一些事情,大致按顺序排列:
- 使用 iOS 13.4 的新模拟器(我目前使用的是 13.5)
- 新测试帐户
- Xcode 12 测试版
===
到目前为止我已经尝试过:
- 使用 iOS 13.4 的新模拟器
- Xcode 12 测试版
- 重新启动我的 Mac
最终,这些方法都没有奏效;一旦我开始收到“无法获取身份验证 token ”错误(我通常会在 24 小时内收到该错误),唯一能让模拟器再次工作的方法就是删除它。
我不确定的一件事是,一旦模拟器处于该状态,任何东西是否都可以恢复它。例如,当我第一次启动 Xcode 12 beta 并第一次运行模拟器时,它立即要求输入密码。测试版是从已经损坏的模拟器开始的吗?更重要的是,Xcode 12 beta 是否会自行损坏模拟器,或者它只是发现了 Xcode 11.5 实际上创建的错误?我不知道。
我会尝试更多的事情...
===
创建新的测试帐户不起作用,但我可能发现了一些可行的方法:重置钥匙串(keychain)。以下是从命令行执行此操作的方法:
xcrun simctl keychain reset <device>
运行该命令后,模拟器再次要求输入 iCloud 密码,但密码现在会产生预期结果:iCloud 再次开始工作。
(如果您的应用程序在您重置钥匙串(keychain)时正在运行,您可能需要重新启动它,或者以其他方式刺激它,以便它注意到更改。)
关于swift - Xcode 版本 11.5 CloudKit 无法在模拟器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62730245/