Search code examples
swiftxcodeapp-storerealmxcode7.3

copying Realm file in Caches Directory


My app got rejected by Apple because of this : "On launch and content download, your app stores 13.01 MB on the user's iCloud, which does not comply with the iOS Data Storage Guidelines."

I know what's the problem.how can i save my Realm database in Caches Directory instead of Documents directory?


Solution

  • You can use Realm.Configuration.fileURL to change a Realm file path. Like the following:

    let cachesDirectoryPath = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)[0]
    let cachesDirectoryURL = NSURL(fileURLWithPath: cachesDirectoryPath)
    let fileURL = cachesDirectoryURL.URLByAppendingPathComponent("Default.realm")
    
    let config = Realm.Configuration(fileURL: fileURL)
    let realm = try! Realm(configuration: config)
    

    If you would not like to specify fileURL every instantiating Realm, you can use Realm.Configuration.defaultConfiguration. If you set a configuration object to defaultConfiguration, Realm() uses the configuration as default.

    Realm.Configuration.defaultConfiguration = config
    let realm = Realm()
    

    See also... https://realm.io/docs/swift/latest/#realm-configuration