1

My application got rejected for the 2nd time.

When my app got rejected for the 1st time, I first checked all these links and more:

Then, I added a function that marks all my /Documents files with "do not back up" attribute NSURLIsExcludedFromBackupKey. But my application got rejected again. Here is my code:

func excludeUrls(path: String) {
    let urlToExclude = NSURL.fileURLWithPath(path)
    do {
        try urlToExclude.setResourceValue(NSNumber(bool: true), forKey: NSURLIsExcludedFromBackupKey)
        print("\(path) excluded.")
    } catch {
        print("failed to set resource value")
    }
}

More informations:

  • I have about 320 static photo embedded in Supporting Files, these images are not backed up.
  • I use Google/SignIn, Google/CloudMessaging, Alamofire and SQLite.swift pods
  • I have 1 sqlite database that I save in /Library/Cache folder, which is not backed up of course.
  • When I check iCloud storage space for my application:

    Go to Settings > iCloud > Storage & Backup > Manage Storage

I found that my app stores ONLY 578 KB enter image description here

Community
  • 1
  • 1
Soufiane ROCHDI
  • 1,543
  • 17
  • 24
  • The first step here is to reach out to App Review and ask them what the specifics are. I've had issues with data storage rejections a few years back and eventually App review called me to resolve it. Marking my files with do-not-backup was part of the solution, but you also need be sure that App Review has the same understanding of your data that you do. – Moshe Apr 18 '16 at 10:36
  • I already made an appeal. and the team didn't give me more details, here is their answer : The App Review Board evaluated your app and determined that the original rejection feedback is valid. Your app does not comply with: 2.23: Apps must follow the iOS Data Storage Guidelines or they will be rejected The app backs up 6.89 MB to the user's iCloud on launch. Only user generated content should be stored in iCloud; backing up non-user generated content, such as content generated on launch, is not appropriate. All other data should be marked with the "do not back up" attribute. – Soufiane ROCHDI Apr 19 '16 at 08:37

2 Answers2

0

According to the comment you posted, Apple asserts that your app is actually backing up about 6 megabytes of data on launch.

That's the key. Try to reproduce and isolate that behavior. You may be able to use instruments to and a careful eye to figure this out at a lower level, if everything seems to add up otherwise.

The only other thing you can do is ask them to contact you and talk it through with them.

Moshe
  • 57,511
  • 78
  • 272
  • 425
0

Hopefuly, Apple Review Team finished by accepting my application. Here is what I did:

1 - I moved the generated database to the /Library/Caches

2 - I added an ImageLoader class to optimise the way i'm loading and using images inside the app, specially, there is a lot of images to handle. So, best way is to use cache: check this class

3 - The most important thing that I did, after seeing that my app does not store a lot of KB in iCloud, is that I appealed the rejection and I gave a lot of description and details and even some screenshots.

Soufiane ROCHDI
  • 1,543
  • 17
  • 24