![]() |
iOS: Dateien in iCloud Drive speichern
Hi,
ich habe es dank ![]() geschafft, dass meine App jetzt Dateien in der iCloud speichert. Diese sind aber ja noch App-spezifisch abgelegt. Ich möchte aber von einem Browser auf diese Dateien zugreifen. Daher muss ich die Dateien im iCloud Drive abspeichern, da man nur dort mit mehreren Apps an der gleichen Datei arbeiten kann ( ![]() Wie funktioniert dies? Muss man dazu "nur" den Pfad anders ermitteln? Dies mache ich aktuell folgendermaßen:
Delphi-Quellcode:
Grüße, Philipp
class function TFileUtils.getAppSharedDownloadsPath():String;
{$IFDEF IOS} var nsFile: NSFileManager; URL: NSURL; {$ENDIF} begin {$IFDEF IOS} nsFile := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager); URL := nsFile.URLForUbiquityContainerIdentifier(nil); if (URL <> nil) then Result := UTF8ToString(URL.path.UTF8String) else Result := ''; {$ELSE} {$IFDEF MSWINDOWS} result:=GetEnvironmentVariable('USERPROFILE')+'\Downloads'; {$ENDIF} {$IFDEF MACOS} result:=System.IOUtils.TPath.getDownloadsPath(); {$ENDIF} {$IFDEF ANDROID} result:=System.IOUtils.TPath.getSharedDownloadsPath(); {$ENDIF} {$ENDIF} end; |
AW: iOS: Dateien in iCloud Drive speichern
Vielleicht hilft Dir das weiter ?
![]() ![]() |
AW: iOS: Dateien in iCloud Drive speichern
Das mit der Erweiterung der info.plist hatte ich auch schon an anderer Stelle gefunden, dass ich den Pfadnamen um /Documents verlängern muss, noch nicht.
Ich sehe die Dateien aber weiterhin nur in der App-iCloud und nicht in iCloud Drive. Wobei ich zugeben muss, dass ich auch den Pfad etwas hemdsärmlig um /Documents verlängert habe und nicht per Zitat:
Zitat:
Genauso weiß ich nicht, ob der Part von "Adding capability" von Delphi via XCode korrekt erledigt wird. |
AW: iOS: Dateien in iCloud Drive speichern
Zitat:
![]() Deshalb soll man auch asynnchron Warten bis es wirklich erzeugt ist, weil beim 1. Mal das wohl länger dauern kann. Die Capabilities muss mman vielleicht im iTines Connect (oder wie das jetzt heisst) einstellen, und sich da womöglich wieder ein Zertifikat holen. Ich denke das ist ähnlich wie bei PushNotifications. |
AW: iOS: Dateien in iCloud Drive speichern
Ich habe mal alles deinstalliert und gelöscht und von vorne begonnen und den Code gerade gezogen.
Leider bleibt es noch dabei, in der iCloud sind die Daten, aber nicht in iCloud Drive. Da werde ich noch ein wenig Jugend forscht betreiben müssen:
Delphi-Quellcode:
und das neue Zertifikat ist für die iCloud an sich schon notwendig. Das sollte eigentlich alles passen.
class function TFileUtils.getAppSharedDownloadsPath():String;
{$IFDEF IOS} var nsFile: NSFileManager; URL: NSURL; {$ENDIF} begin {$IFDEF IOS} nsFile := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager); URL:=nsFile.URLForUbiquityContainerIdentifier(nil); if (URL <> nil) then begin URL:=URL.URLByAppendingPathComponent(StrToNSStr('Documents')); Result := UTF8ToString(URL.path.UTF8String); if (not nsFile.fileExistsAtPath(URL.path,nil)) then begin mlog.info('create new iCloud directory: '+result); if (nsFile.createDirectoryAtURL(URL,true,nil,nil)) then mlog.info('Created new iCloud directory '+result) else mlog.info('Can´t creat new iCloud directory '+result); end else mlog.info('iCloud directory exists yet '+result); end else Result := ''; {$ELSE} {$IFDEF MSWINDOWS} result:=GetEnvironmentVariable('USERPROFILE')+'\Downloads'; {$ENDIF} {$IFDEF MACOS} result:=System.IOUtils.TPath.getDownloadsPath(); {$ENDIF} {$IFDEF ANDROID} result:=System.IOUtils.TPath.getSharedDownloadsPath(); {$ENDIF} {$ENDIF} end; |
AW: iOS: Dateien in iCloud Drive speichern
Ich hatte ja irgendwo gelesen das in dem iCloud Drive die App dann einen Folder mit dem Namen der App anlegt, wo die Daten dann drinstehen sollten.
Kann man sowas im iCloud Driver erkennen ? Vielleicht macht es auch Sinn einfach mal ein kleines XCode Projekt anzulegen und nach den Anleitungen aufzubauen, um zu sehen was da Alles gesetzt wird. Ja die Jugend soll meinetwegen forschen, ich bin da langsam zu alt für :-D |
AW: iOS: Dateien in iCloud Drive speichern
Nein, leider sehe ich meine App im iCloud Drive noch überhaupt nicht und ja, dies würde ich laut den Beschreibungen eigentlich erwarten. Vielleicht hat es noch etwas damit zu tun, dass die App natürlich im Entwickler-Modus läuft. Daher werde ich es mal so hochladen und in der "echten" Version anschauen.
Ich sehe zumindest in iExplorer auf meinem Mac ausgeführt, dass meine Cloud auf dem iPad unter /Users/philipp/Library/Mobile Documents/icTrainer liegt und in der App wird /private/var/mobile/Library/Mobile Documents/iCloud~de~ictrainer/Documents ausgegeben. |
AW: iOS: Dateien in iCloud Drive speichern
So, ich bin eine Runde weiter. Jetzt sehe ich sowohl bei der über den AppStore installierten, als auch über Delphi installierten Version die Dateien in iCloud Drive. Ich vermute dies geht jetzt, weil die neue Version mit dem iCloud-Zugriff erstmalig über AppStoreConnect hochgeladen wurde.
Wermutstropfen am Morgen: Die Dateien sind im Browser ausgegraut, d.h. nicht auswählbar. Dann muss ich mir dies noch anschauen. |
AW: iOS: Dateien in iCloud Drive speichern
Ok, das ausgegraute scheint ein Problem der Garmin-Website unter iOS zu sein. Auf der Strava-Website kann ich das File auswählen. Also doch alles gut.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz