Watchkit扩展无法从iCloud读取

时间:2017-02-04 06:17:07

标签: swift watchkit icloud

我正在寻找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
    }

在上面的情况中,cloudURL在手表上没有,但没有手机。对于forUbiquityContainerIdentifier,我检查了同一个标识符用于手表和手机。我也尝试直接输入名称而不是使用nil并让它从权利中获取它。容器的格式:

iCloud.com.company.app

据我所知,Watch OS 3应该能够使用iCloud。

更新

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

  获取时,

WatchKit扩展[390:687462] [默认] [错误]错误   ubiquityIdentityToken:Error Domain = NSCocoaErrorDomain Code = 4099“The   与名为com.apple.bird.token的服务的连接无效。“   UserInfo = {NSDebugDescription =指向服务的连接   com.apple.bird.token无效。}

1 个答案:

答案 0 :(得分:1)

我从Apple正式回复说,这不是Watch OS支持的功能。这与我们让他们了解的自己的文档背道而驰。希望其他人看到这种反应,它可以节省大量的时间,我最终浪费了。