Note that there are some explanatory texts on larger screens.

plurals
  1. POiOS - how to structure database to conform to iCloud backup rules
    primarykey
    data
    text
    <p>I've been having trouble getting an app submitted to the App Store. This is due to the fact that that database, which is updatable, is too large for the iCloud backup limitations. Most of the data in the db is static, but one table records the user's schedule for reviewing words (this is a vocabulary quiz). </p> <p>As far as I can tell, I have two or three realistic options. The first is to put the whole database into the Library/Cache directory. This should be accepted, because it's not backed up to iCloud. However, there's no guarantee that it will be maintained during app updates, per this entry in "Make App Backups More Efficient" at this url:</p> <p><a href="http://developer.apple.com/library/IOs/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html" rel="nofollow">http://developer.apple.com/library/IOs/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html</a></p> <pre><code>Files Saved During App Updates When a user downloads an app update, iTunes installs the update in a new app directory. It then moves the user’s data files from the old installation over to the new app directory before deleting the old installation. Files in the following directories are guaranteed to be preserved during the update process: &lt;Application_Home&gt;/Documents &lt;Application_Home&gt;/Library Although files in other user directories may also be moved over, you should not rely on them being present after an update. </code></pre> <p>The second option is to put the data into the NSDocuments or NSLibrary directory, as mark it with the skipBackupFlag. However, one problem is this flag doesn't work for iOS 5.0 and previous per this entry in "How do I prevent files from being backed up to iCloud and iTunes?" at </p> <p><a href="https://developer.apple.com/library/ios/#qa/qa1719/_index.html" rel="nofollow">https://developer.apple.com/library/ios/#qa/qa1719/_index.html</a></p> <pre><code>Important The new "do not back up" attribute will only be used by iOS 5.0.1 or later. On iOS 5.0 and earlier, applications will need to store their data in &lt;Application_Home&gt;/Library/Caches to avoid having it backed up. Since this attribute is ignored on older systems, you will need to insure your app complies with the iOS Data Storage Guidelines on all versions of iOS that your application supports </code></pre> <p>This means that even if I use the "skipBackupFlag", I'll still have the problem that the database is getting backed up to the cloud, I think. </p> <p>So, the third option, which is pretty much of an ugly hack, is to split the database into two. Put the updatable part into the NSLibrary or NSDocuments directory, and leave the rest in application resources. This would have the small, updatable part stored on the cloud, and leave the rest in the app resources directory. The problem is that this splits the db for no good reason, and introduces possible performance issues with having two databases open at once. </p> <p>So, my question is, is my interpretation of the rules correct? Am I going to have to go with option 3? </p> <p>p.s. I noticed in my last post cited urls were edited to links without the url showing. How do I do this?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload