2016-01-24 3 views
2

Один из моих приложений только что отвергнуты из-за следующей причине:Неожиданные данные, сохраненные в ICloud

2,23 - Приложения должны следовать IOS рекомендации по хранению данных, или они будут отклонены

2.23 Подробнее

При загрузке и загрузке контента ваше приложение хранит 103,72 МБ в iCloud пользователя, что не соответствует Руководству по хранению данных iOS.

Я проверяю свой iPhone, и мое приложение действительно сохраняет 200+ МБ данных в iCloud. Тем не менее, я уверен, что все данные в моем приложении сохранены с помощью Core Data, и приложение даже не включило iCloud на вкладке «Возможности». Итак, есть ли способ узнать, откуда берутся эти данные? Или вы можете предложить что-то, что может вызвать это, чтобы я мог заглянуть в них?

Редактировать

К сожалению, я пропустил линию обратной связи от Apple:

Для получения дополнительной информации о предотвращении файлов от резервного копирования на ICloud и ITunes, см Technical Q&A 1719: How do I prevent files from being backed up to iCloud and iTunes.

Так что я думаю, что рецензент на самом деле имел в виду, что некоторые данные, которые не должны быть зарезервированы до ICloud резервируются, поэтому все, что мне нужно сделать что-то вроде этого:

- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *) filePathString { 
    NSURL* URL= [NSURL fileURLWithPath: filePathString]; 
    assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]); 

    NSError *error = nil; 
    BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] 
           forKey: NSURLIsExcludedFromBackupKey error: &error]; 
    if(!success){ 
     NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error); 
    } 
    return success; 
} 

ответ

0

Это довольно распространенная проблема.

Вы можете использовать следующий код в application:didFinishLaunchingWithOptions: увидеть разрешение каждого пункта о ICloud резервного копирования:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; 
NSArray *documents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:basePath error:nil]; 
NSURL *URL; 
NSString *completeFilePath; 

for (NSString *file in documents) { 
    completeFilePath = [NSString stringWithFormat:@"%@/%@", basePath, file]; 
    URL = [NSURL fileURLWithPath:completeFilePath]; 
    NSLog(@"File %@ is excluded from backup %@", file, [URL resourceValuesForKeys: 
                  [NSArray arrayWithObject:NSURLIsExcludedFromBackupKey] 
                      error:nil]); 
} 

Если вы заметили, что некоторые файлы синхронизации с ICloud, вместо сохранения этих файлов в другом месте вы можете установить значение ресурса для NSURLIsExcludedFromBackupKey в YES, чтобы исключить эти файлы из резервной копии на ICloud

Как это:

NSURL *URL = [NSURL fileURLWithPath:photoPath]; 
[URL setResourceValue:@(YES) forKey:NSURLIsExcludedFromBackupKey error:nil]; 
+0

Спасибо за ответ. Я только что обнаружил, что пропустил строку в отзывах Apple (я отредактировал вопрос). Извини за это. –

+0

Мое дело: я не могу найти файл в документах, а размер резервной копии - несколько КБ .. – Bastet

Смежные вопросы