Mac App Store - не удается сохранить файл - PullRequest
1 голос
/ 19 мая 2011

Существуют ли какие-либо ограничения в отношении сохранения файлов при распространении приложения через Mac App Store?

Если я компилирую и запускаю приложение с моего компьютера, оно работает нормально - оно сохраняет конфигурацию.

Однако версия, которая была загружена через Mac App Store, не сохраняет конфигурацию. Я даже не вижу файл конфигурации. Кто-нибудь знает, что происходит?

Это код, который сохраняет конфигурацию:

-(void)saveConfig:(id)plist {

    NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingString: CONFIG_FILE_NAME];

    NSData *xmlData;
    NSString *error;

    xmlData = [NSPropertyListSerialization dataFromPropertyList: plist
        format: NSPropertyListXMLFormat_v1_0
        errorDescription: &error];
    if(xmlData)
    {
        if (![xmlData writeToFile:path atomically:YES])
            NSLog(@"Failed to write the config file onto the hard drive");
    }
    else
    {
        NSLog(error);
    }
}

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

Вы не можете записывать файлы в каталог комплекта приложений, если ориентируетесь на Mac App Store. Пучок должен быть неизменным.

Подумайте о сохранении вашей конфигурации с помощью NSUserDefaults или, если вам действительно нужен отдельный файл, официально рекомендованным местоположением является (~) / Библиотека / Поддержка приложений. Мэтт Галлахер написал хороший пост под названием Поиск или создание каталога поддержки приложений , в котором он предлагает решение, которое использует стандарт NSApplicationSupportDirectory, за которым следует имя исполняемого файла.

1 голос
/ 19 мая 2011

Как правило, вы должны предполагать, что ресурсы вашего приложения доступны только для чтения. Это верно в целом, а не только для магазина приложений.

Если вы хотите сохранить пользовательские настройки в виде списка свойств, используйте NSUserDefaults вместо изменения файлов внутри приложения. Это будет «просто делать правильные вещи», то есть сохранять настройки в ~/Library/Preferences.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...