我正在尋找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被認定無效的連接。}