Ich bin auf der Suche nach der Watchkit-Erweiterung, um eine Datei aus iCloud Dokumentenspeicher zu lesen. Ich habe die Datei aus der iOS App geschrieben, die sie auch lesen kann. Ich nutze eine gemeinsame Klasse, so dass der Code derselbe ist. Das Problem ist, dass auf der Uhr die URL für den Cloud-Container null zurückgibt.Watchkit-Erweiterung kann nicht von iCloud lesen
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
}
Im obigen Fall ist cloudURL Null auf der Uhr, aber nicht das Telefon. Für die habe ich überprüft, dass die gleiche Kennung für beide Uhren und Telefone verwendet wird. Ich habe auch versucht, den Namen direkt einzugeben, anstatt nil zu verwenden und ihn aus den Berechtigungen herauszunehmen. Das Format des Behälters:
iCloud.com.company.app
Es ist mein Verständnis, dass beobachten OS 3 soll der Lage sein, iCloud zu verwenden.
Update:
Ich druckte let token = fileManager.ubiquityIdentityToken
und ich folgendes:
WatchKit Erweiterung [390: 687462] [Standard] [ERROR] Fehler beim Abrufen ubiquityIdentityToken: Fehler Domain = NSCocoaErrorDomain-Code = 4099 "Die Verbindung zum Dienst namens com.apple.bird.token wurde ungültig gemacht." Userinfo = {NSDebugDescription = Die Verbindung com.apple.bird.token für ungültig erklärt wurde benannt Service.}