I write several offline mapping apps, and this is totally throwing us for a loop. We're recommending our power users not upgrade to iOS 5. Users download gigabytes of maps to their cache directory, they don't want to eat their iCloud allotment with that, or their slow their iTunes sync. But they also don't want to have to download those maps again, or find themselves in the middle of the woods without the maps they downloaded.
Instead of just saying "don't install iOS5", can't you continue to store files in their Documents, but tell them to flip off the sync switch for your app? http://i.imgur.com/acOje.png
We could, but it would involve pushing an update to the app. The 'don't install' is a stopgap for people who may be counting on using their maps this weekend. Additionally, people collect geo information with our app, tracks and waypoints that they like to backup.
> Additionally, people collect geo information with our app, tracks and waypoints that they like to backup.
That could still be persisted separately if you stuff all that into iCloud's KV store instead of relying on file backup. (Just trying to brainstorm technical solutions; not suggesting they're at all optimal.)
The cleaning issue isn't something that just popped up with the GM build. It existed before then in some of the later betas. As a developer it's verging on the lazy to wait for the GM before you update an app for an issue that you've known about for month(s). As a developer, it's your responsibility to update your app to work with as little inconvenience to your users.
That's what I thought, but see marchdown's comment later on this page -- he says: "Apple prohibits developers to store stuff that can be regenerated or re-downloaded. So, arguably, you can't just switch to using Documents for downloadable data." If that's true, it would prevent such a simple solution.
Good to know there is a per-app toggle switch for this.
Some of us make multi-MB files in the documents folder that weren't designed to be granular for backing up or syncing.
The bigger question is why wasn't this considered DURING the iOS5 beta? If it got brought to Apple's attention during the beta cycles and they decided to not fix it then they'll most likely won't fix it now either (although it seems like they really don't have much choice here but to provide a solution one way or another)
Fair point, but attention-grabbing blog posts are not the only way to get your voice heard as a developer. There's a difference between 'feedback' and 'creating public pressure'.
But I hear ya...
See Marco's post. Apple has made it clear that anything outside of Library/Caches/, tmp/, or the app bundle will be backed up to iCloud. I have personally witnessed this with Documents/ (as expected) and even Library/Application Support/ (which I hoped would be safe, but is not).
There is no current safe place to save local data that should not be backed up to iCloud.
If there were both "on the phone and backed up in iCloud" and of "stored only on the phone" kinds of data, either your app would decide for you whether your data is worth backing up, or it would let you decide. Apple finds both options unacceptable.
The mental model for iOS is that it stores only two kinds of data: discardable because it can be reproduced, and backed up because it cannot.
That ensures that all your data always is safe. You do not have to worry about losing data when your phone breaks down, or about forgetting to move some data when you upgrade.
I think this also is the reason iOS devices do not have memory card slots. It complicates data management; Apple does not think that is worth the extra complexity.
My app is heavily effected as well. I have a Picasa client that auto-caches photos for users. The app manages the cache and clears it when needed, but certain albums can be manually set to cache by users so they're never deleted. I wouldn't want all these photos backed up and I don't think apple would allow it. Them going through and deleting the data themselves basically breaks the app for our users though.
It doesn't seem to work for me. I moved our large data files from the library cache directory to a data.nosync directory in the documents directory. The data in the nosync folder is being backed up to iCloud.
Isn't this what innovation is about? Finding ways of solving problems? Is forcing apps to make more efficient of their use of space such a bad thing?
From what I see, your users have 3 choices: They can use your app and use up their iCloud allotment, they can use your app and not upgrade, or they can upgrade and find a mapping app that is more efficient in its use of space.
This argument is way over used. It is 'your' choice to upgrade to iOS5.
It isn't like Chrome where there are rolling updates that just get applied. You actually have to sit at your computer for a while, download the software and than install it. Many chances to turn back.
Lame argument. Microsoft offers you a "choice" of installing updates as well. What if they started deleting files put by other legitimate apps because it is slowing your computer or changing your wallpaper because its too ugly... where is the line???