So, I’ve been working on a new version of my app Songbook Simple and I want to improve some of the file sync code. Up until now I’ve been supporting Dropbox, with the original idea that a user can edit and modify all his/her songs from the convenience of their desktop, and it would just sync on the device. This *has* worked, and *still* works, though it always seemed like a quick and dirty solution to me.
Enter Apple TV. I thought it would be fun to make Songbook Simple Apple Tv compatible, but in order to do that, one basically has to support iCloud for syncing data. As the Apple TV won’t be an editor, but just a viewer, we need to get data from somewhere, and I’m not so sure Apple TV is entirely Dropbox friendly yet.
So, I’m trying to implement iCloud support in Songbook. I followed the excellent 4 part tutorial series written by Ray Wenderlich himself. It all seemed to work brilliantly. Files were syncing across iOS devices.
But wait. Now what about using my Mac to edit files? Well, turns out this is where iCloud Drive is a complete and utter disaster. On icloud.com, there is no folder associated with Songbook. On iOS, the iCloud Drive app DOES show my app folder and its contents. On OSX, in the iCloud Drive folder, you don’t see anything associated with Songbook. So my user workflow, namely, editing songs on your Desktop, is broken.
I’m all for “Automagic” for the sake of better User Experience, but if it’s “Autobroken”, then get rid of your magic because you’re killing us.
In order to restore the ability to edit the contents of my SongbookSimple folder, I had to open a terminal window, and do the following:
ln -s ~/Library/Mobile\ Documents/iCloud~com~softwarebarn~SongbookSimple/Documents/
Then, from Finder, navigate to the Desktop, then either move that Alias that just got made (called Documents) to somewhere better, or simply drag it into my Finder’s sidebar.
Great feature, Apple! All these years to mimic Dropbox and it’s still a failure. Yes, I followed ALL the instructions, and spent 3 hours this morning making sure I didn’t miss any.