iCloud Drive: Fehlende Folder

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • iCloud Drive: Fehlende Folder

      Hi Leute!

      Ich nutzte zwischen zwei iOS-Apps bisher eine selbst geschriebene Synchronisation per Dropbox, um Dateien zwischen Geräten, diesen Applikationen und dem Mac auszutauschen. Seinerzeit hatte ich mich gegen iCloud entschieden, weil ein einfacher / offizieller Zugriff unter OS X fehlte. Nun müsste ich das Ganze auf die Dropbox API v2 umstellen und es gibt iCloud Drive ... also bot sich die Gelegenheit an - dachte ich - auf iCloud umzustellen:

      Um mich mit iCloud File Management anzufreunden, schreibe ich gerade eine Test-App. Sie ist noch nicht vollständig, aber das Anlegen von Dateien (mit NSFileCoordinator, nicht UIDocument) funktioniert soweit, aber ... ich bekommen die Applikation nicht in iCloud Drive angezeigt:
      • Die Test-App auf einem zweiten Gerät zeigt die Dateien, also müssen sie in die Cloud übertragen worden sein
      • Auf iCloud.com wird kein Ordner der App angezeigt
      • Das gleiche gilt für macOS
      Erst vermutete ich, dass unter macOS keine Ordner von iOS-Applikationen erscheinen, aber z. B. GoodReader wird gelistet. Google listet viele Leute mit ähnlichen Problemen, aber keine zuverlässigen Lösungen ... zumal es kein reines macOS-Problem zu sein scheint, siehe iCloud.com.

      So sieht die info.plist aus (statt "xyz" steht dort ein vernünftiger Name, analog zur Bundle-ID):

      Quellcode: info.plist

      1. <key>NSUbiquitousContainers</key>
      2. <dict>
      3. <key>iCloud.de.xyz.CloudTest</key>
      4. <dict>
      5. <key>NSUbiquitousContainerIsDocumentScopePublic</key>
      6. <true/>
      7. <key>NSUbiquitousContainerName</key>
      8. <string>CloudTest</string>
      9. <key>NSUbiquitousContainerSupportedFolderLevels</key>
      10. <string>Any</string>
      11. </dict>
      12. </dict>
      13. <key>NSUbiquitousDisplaySet</key>
      14. <string>de.xyz.CloudTest</string>
      Alles anzeigen
      Ich bin echt ratlos und frage mich langsam, ob der Wechsel auf iCloud eine gute Idee ist ... allerdings war die Synchronisierung über Dropbox nie wirklich gut, ich würde sie gerne ablösen.

      Hat jemand von Euch mit dem Zugriff auf iCloud-Ordner von iOS-Applikationen Erfahrung? Was könnte ich noch testen, um der Sache auf die Spur zu kommen?

      Grüße, Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MyMattes ()

    • Wirklich keiner?

      Liegt es daran, dass
      • Ihr iCloud Drive noch nie zum Austausch zwischen macOS und Eurer iOS-App benutzt habt?
      • es nutzt, aber keine Probleme habt bzw. Lösungsansätze wisst?
      • ich Euch mit einen verwirrenden Posting abgeschreckt habe?
      Ich tappe echt im Dunkeln und wäre schon für Ideen zur Fehleranalyse dankbar!

      Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
    • Ich habe für eine App auch einen Ordner in der iCloud angelegt. Das war damals schon tricky.

      Ich kann die nächsten Tage mal schauen, wie das damals ging.

      Im Allgemeinen kann ich jedoch von der iCloud eher abraten. Ich habe von einem Kunden eine App übernommen und da war auch iCloud drinnen. Das war vor 3 Jahren. Jetzt haben wir jedes Jahr bei einem neuen iOS das Problem, dass irgendwas immer nicht funktioniert. Also das auf einmal Daten weg sind oder doppelt kommen etc. Der Code der unter iOS 9 lief funktioniert nun bei einigen aus irgendwelchen Gründen nicht mehr etc.
    • Das macht ja nicht gerade optimistisch. Leider ist ein "einfacher" File-Sync über Dropbox auch nicht unkompliziert ... und bedeutet wie gesagt jetzt ziemliche Umstellung, schon allein, um den eigenen Code robuster zu machen.

      Danke auf jeden Fall für Deine Mühe. Es geht mir primär um die Anzeige in iCloud Drive auf Mac und iCloud.com: Die Synchierung in der App scheint zu funktionieren

      Grüße, Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
    • Danke für's Nachschauen. Ja, die Buildnummer habe ich immer schön erhöht. Der SO-Artikel (noch aus der Mailbenachrichtigung) klingt ja auch nicht sehr vertrauenserweckend: Mal die Sichtbarkeit erst nach Review, mal nicht oder auch ohne ... das ganze scheint recht fragil.

      Hoffentlich finde ich am Wochenende noch etwas mehr Zeit zum Testen, das muss doch klappen :)

      Plan B: Ich habe noch zwei Code-Support-Tickets und meine Mitgliedschaft wird in ca. 10 Tagen verlängert. Wenn ich am nächsten Wochenende noch nicht schlauer bin, werde ich eines der Tickets "ziehen"...

      Grüße, Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
    • Falls es einen interessiert: Ich habe eben den folgenden "Technical Support Incident" (TSI) aufgemacht:

      Mattes schrieb:

      Description:

      I have an issue with iCloud documents not showing up in iCloud drive on my Mac or iCloud.com:

      I’d like to migrate file synching in some of my iOS apps from Dropbox to iCloud Drive. To get myself familiar with iCloud documents I’ve written a small, very basic sample app, CloudTest. It allows the creation and editing of text document locally and in iCloud, synchronizing changes across devices. For a purpose I didn’t use a UIDocument subclass, but utilized NSFileCoordinators on my own (NSFilePresenters are not required for the sample app).

      The app works well: I can create / modify / delete documents on one device, and after some moments changes are reflected on another iOS device. In addition the iCloud Drive app is reflecting the same changes on both iOS devices, so I assume synchronization with iCloud Drive is working properly.

      But for some reason neither the macOS Finder on my Mac nor iCloud.com is showing the app folder of CloudTest. Folders of other iOS-only apps (e.g. GoodReader) are listed.

      Here’s what I did to implement iCloud synching in CloudTest:

      • I defined an iCloud display set „iCloud.de.xxx.CloudTest“ in iTunesConnect (weird, but its never listing CloudTest as an attached app)
      • In Member Center a corresponding iCloud container „iCloud.de.xxx.CloudTest“ is defined and assigned to the App ID „de.xxx.CloudTest“
      • A dedicated distribution profile is defined for „de.xxx.CloudTest“ (not managed by Xcode)
      • In Xcode the app is defined with iCloud capabilities and the entitlements file is using the corresponding iCloud containers
      • The app’s info.plist is mentioning NSUbiquitousContainers and related keys
      • The documents directory is successfully set up using NSFileManager’s URLForUbiquityContainerIdentifier
      • Build numbers are increased for every new git commit (via Run Script phase)
      • NSFileCoordinators are used for every access to an iCloud file with the appropriate options


      I would happily provide you the sample app „CloudTest“ (without git repository).

      Which step am I missing to propagate the app folder (and included files) to iCloud Drive on my Mac and iCloud.com? For the apps to be migrated a file synchronization with customers’ Mac / Windows computers is crucial … and was back in the past the reason to implement file synching using Dropbox.

      Configuration:

      iPhone 6, iOS 10.2 (14C92)
      iPad mini, iOS 10.2 (14C92)
      MacBook Pro 13“, mid 2009, macOS 10.11.6 (15G1212)
      Xcode Version 8.2 (8C38)

      Steps to Reproduce:

      To test synchronization I performed the following steps:

      • On all devices the same Apple ID is logged in iCloud (abc@mac.com), which is NOT the Apple ID registered as a developer
      • I connected the first test device A via USB and built / ran CloudTest on this device
      • iCloud is enabled on device A („share“ button in the tableview controller, iOS settings), the device is connected to the internet
      • I connected a second test device B via USB and built / ran CloudTest on this device
      • iCloud is enabled on device B („share“ button in the tableview controller, iOS settings), the device is connected to the internet
      • A new document is created with sample text on B by touching the „add“ button in the tableview controller and entering a filename
      • The document is shown after some seconds in CloudTest on device A
      • The document is shown in the iCloud Drive app on devices A and B
      • Neither the document nor a „CloudTest“ folder are shown in the iCloud Driver folder on my Mac or on iCloud.com (reboot without success)
      • After realizing the issue when running the app in debug mode from Xcode, I loaded CloudTest in TestFlight and installed it (after removing the debug version) on the devices A and B: Same result

      Na, nun bin ich ja mal gespannt, wie die Jungs reagieren ... und natürlich auf die Ursache. Hoffentlich wird das ganze nicht zur Sackgasse.

      Grüße, Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
    • Heute kam die Rückmeldung von DTS ("Developer Technical Support"), erstaunlicherweise ohne nach einem Beispielcode zu fragen - ich scheine nicht der erste zu sein:

      DTS schrieb:

      The “iCloud container not showing on iCloud.com” issue is a bug and there is no solution/workaround DTS can provide for that. As such, please file a bug report about this problem. You may use the Bug Reporter tool at developer.apple.com/bug-reporting/.

      With regard to the iCloud container not synching to the Mac, we believe that is also a bug report but we can probably find a workaround. Please file a bug report for this matter too.
      Wow! Also werde ich am Wochenende Bug-Reports schreiben und auf besagten Workaround hoffen. iCloud.com ist für mich kein Show-Stopper, aber wenn der Ordner nicht unter macOS angezeigt wird, ist iCloud für mich keine Alternative. Da ich aber absolut keinen Bock habe, die Dropbox-Lösung auf APIv2 umzustellen, gehen mir die Optionen aus.

      Sch...-Tag :(

      Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
    • Na ja, irgendwie war doch in dem ganzen iCloud-Zeugs/CoreData-Sync von Anfang an der Wurm drin, oder? Trotzdem blöd wenn man davon betroffen ist. Aber schau', Du hast es ja noch vor dem Release bemerkt. Ganz dumm sind solche Sachen, wenn es beim Kunden aufschlägt. Da bist nämlich erstmal Du Schuld und bekommst schlechte Bewertungen für die Du nix kannst.
    • Mich nervt einfach so, dass das Syncen (in meinem Fall) ja sogar funktioniert ... zwischen iOS-Geräten. Und iCloud Drive sollte doch eigentlich gut genug "abgehangen" sein, dass solche Basics funktionieren. Aber was soll das Weinen, Du hast schon recht: Besser jetzt erkannt, als später bereut.

      Da es "nur" eine Hobby-App ist, werde ich mir gut überlegen, Programmieraufwand in eine blöde Dropbox-Umstellung zu stecken. Vielleicht kündige ich die Funktion ab. Ach was, erst mal d'rüber schlafen...

      Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
    • NSObject schrieb:

      Anregungen:
      * Hattest Du Dir mal den iCloud Vortrag vom Max Seelmann angesehen? Evtl. gibt es da noch hilfreiche Hinweise, der hat ja viel Erfahrung gesammelt..
      * Hast Du mal die Möglichkeit von cloudfreiem p2p Syncing in Erwägung gezogen?
      Guter Tipp, da sass ich doch sogar interessiert im Publikum :D Eben nur kurz durchgescrollt, werde ich am Wochenende noch einmal genießen ... und ubcontrol -x ausprobieren :D

      Parallel dazu die Bug-Reports, wir werden sehen.

      Ne, jetzt p2p-Synching mit 'ner Companion-App auf dem Mac anzugehen, habe ich wenig Motivation. Zumal es eben auch noch Windows gibt und da möchte ich nicht programmieren. Ist eben Hobby, ich kann mir die Betätigungsfelder (größtenteils) aussuchen. Andererseit möchte ich bestehende User auch nicht "im Regen stehen lassen". Mal sehen, was sich die nächsten Wochen so ergibt. Ich muss eben nur vor Deaktivierung von Dropbox' APIv1 eine Lösung finden ... so oder so.

      Gruß, Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
      • Ursprünglich brauchte ich den Sync zwischen zwei iOS-Apps (Lite- und Vollversion), inzwischen könnte ich das mit einer Universal-App und IAP lösen. Oder eben mit iCloud, dieser Fall scheint ganz gut zu funktionieren.
      • Außerdem wollte ich den Benutzern eine komfortable Möglichkeit zum File-Transfer Mac-iOS bieten, ohne iTunes und z.B. mit Unterstützung von Unterverzeuchnissen.
      Ideal wäre also WAN zum Abdecken beider Szenarien, LAN könnte ein Plan B sein, bliebe aber m.E. Geflickschusterei.

      Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
    • gandhi schrieb:

      Kommt darauf an. Ein Bonjour-Service ist schnell geschrieben. Ein bißchen XML hin- und herschubsen auch. Dafür hat man das ganze iCloud-Zeug vom Hals und für nicht wenige ist das Argument "Sync im lokalen WLAN ohne Cloud-Dienst" ein durchaus positives.
      Wäre auch mal wieder eine (für mich) neue Ecke zum Forschen ... dafür bin ich ja immer ganz dankbar. Windows-User hätten dann allerdings verloren (siehe oben), wobei das bei meiner aktuellen Überlegung auch so wäre: Zu den beiden iOS-Apps gibt es auch eine macOS-Version. Wenn ich diese (NSDocument-basierte) Applikation auf iCloud umstellte, könnte man ja auf diesem Weg in die iCloud übertragen - und vielleicht würde iCloud-Drive dann das Verzeichnis doch zeigen.

      Mann, einfach zu viele Varianten und ich weiß einfach noch nicht genau, wo ich hin will. Naja, eigentlich schon, wenn die ursprüngliche iCloud Drive Problematik nicht bestehen würde. Doof, das alles.

      Danke, Leute, Ihr helft mir durch die Diskussion echt beim Denken ... und irgendwann kommt auch eine Entscheidung, versprochen :D

      Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von MyMattes ()

    • gandhi schrieb:

      (...) und für nicht wenige ist das Argument "Sync im lokalen WLAN ohne Cloud-Dienst" ein durchaus positives.
      Exakt. Ich gehöre auch zu der Spezies. Und die politische Entwicklung in den USA bewegt immer mehr Leute sich darüber bewusst zu werden. – Was Snowden nicht geschafft hat, schafft jetzt Trump. Das hätte ich so nicht erwartet.

      macmoonshine schrieb:

      Mit NSNetService kannst du doch ganz normale Socket-Server aufsetzen, die du unter Windows verwenden kannst. Für das Bonjour-Protokoll gibt es sogar eine Erweiterung von Apple (de.wikipedia.org/wiki/Bonjour_…#Bonjour_f.C3.BCr_Windows).
      Auf die Weise wäre ggfs. in Zukunft sogar noch ein Client für Linux realisierbar.
      * Kann Spuren von Erdnüssen enthalten.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von NSObject ()

    • So, zwei Radars aufgegeben (einen für icloud.com, einen für macOS, wie vom DTS gewünscht) und den macOS-Bugreport an den DTS gegeben, damit ein Engineer nach einem Bypass sucht. Es bleibt spannend.

      ubcontrol scheint es bei mir (macOS 10.11.6) nicht zu geben.

      Ich probiere noch das eine oder andere, warte auf eine Reaktion vom DTS und machte mir ein paar konkrete Gedanken zu Alternativen ... und halte Euch auf dem Laufenden ;)

      Mattes
      Diese Seite bleibt aus technischen Gründen unbedruckt.
    • MyMattes schrieb:

      So, zwei Radars aufgegeben (einen für icloud.com, einen für macOS, wie vom DTS gewünscht) und den macOS-Bugreport an den DTS gegeben, damit ein Engineer nach einem Bypass sucht. Es bleibt spannend.
      Evtl. könntest Du einen oder beide Radars bei uns (Doppler Radar) und dort (OpenRadar) posten.

      MyMattes schrieb:

      ubcontrol scheint es bei mir (macOS 10.11.6) nicht zu geben.
      Ja. Das tool heisst mittlerweile brctl. Den deamon haben sie auch in bird umbenannt.
      Schau Dir mal die neue Man-Page an.

      MyMattes schrieb:

      Ich probiere noch das eine oder andere, warte auf eine Reaktion vom DTS und machte mir ein paar konkrete Gedanken zu Alternativen ... und halte Euch auf dem Laufenden ;)
      Unbedingt. :)
      * Kann Spuren von Erdnüssen enthalten.