Watchkit 扩展无法从 iCloud 读取

C6S*_*ver 1 icloud swift watchkit

我正在寻找 watchkit 扩展来从 iCloud 文档存储中读取文件。我从 iOS 应用程序编写了该文件,该应用程序也可以读取它。我正在利用共享类,因此代码是相同的。问题是在手表上,云容器的 URL 返回 nil。

static func readFromFile(fileName:String) -> String?
{
    let fileManager = FileManager.default
    var cloudURL = fileManager.url(forUbiquityContainerIdentifier: nil)

    cloudURL = cloudURL?.appendingPathComponent("Documents/\(fileName)")

    do
    {
        return try String(contentsOf: cloudURL!)
    } catch {
        print (error)
        return nil
    }
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,cloudURL在手表上是nil,但在手机上不是。为此,forUbiquityContainerIdentifier我检查了手表和手机使用相同的标识符。我还尝试直接输入名称,而不是使用 nil 并让它从权利中获取它。容器的格式:

iCloud.com.company.app
Run Code Online (Sandbox Code Playgroud)

据我了解,Watch OS 3 应该能够使用 iCloud。

更新:

我打印出来let token = fileManager.ubiquityIdentityToken并得到以下内容:

WatchKit Extension[390:687462] [default] [ERROR] 获取 ubiquityIdentityToken 时出错:Error Domain=NSCocoaErrorDomain Code=4099 “与名为 com.apple.bird.token 的服务的连接已失效。” UserInfo={NSDebugDescription=与名为 com.apple.bird.token 的服务的连接已失效。}

C6S*_*ver 5

我已收到 Apple 的正式回复,称这不是 Watch OS 支持的功能。这与我让他们了解的他们自己的文档相矛盾。希望其他人看到这个回应,它可以节省我浪费的大量时间。