我正在寻找watchkit扩展程序来从iCloud文档存储中读取文件。我从iOS应用程序中也可以读取它的文件。我利用共享类,因此代码是相同的。问题是,在手表上,云容器的URL返回nil。Watchkit扩展程序无法从iCloud中读取
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在手表上为零,但不在手机上。对于我检查了手表和手机都使用了相同的标识符。我也尝试直接输入名称而不是使用零,并让它从权利中获取它。容器格式:
iCloud.com.company.app
我的理解是Watch OS 3应该可以使用iCloud。
更新:
我打印出来let token = fileManager.ubiquityIdentityToken
,我得到以下几点:
WatchKit扩展[390:687462] [默认] [错误]错误而获得 ubiquityIdentityToken:错误域= NSCocoaErrorDomain代码= 4099“连接到名为com.apple.bird.token的服务的连接已失效。” 的UserInfo = {NSDebugDescription =到服务名为 com.apple.bird.token被认定无效的连接。}