Mac App Store - не удается сохранить файл
Существуют ли какие-либо ограничения в отношении сохранения файлов при распространении приложения через 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 ответа
Вы не можете записывать файлы в каталог комплектов приложений, если нацелены на Mac App Store. Пучок должен быть неизменным.
Рассмотрите возможность сохранения вашей конфигурации с NSUserDefaults
или, если вам действительно нужен отдельный файл, официально рекомендуемое расположение: (~)/Library/Application Support. Мэтт Галлахер написал хороший пост под названием " Поиск или создание каталога поддержки приложений", в котором он предлагает решение, использующее стандартные NSApplicationSupportDirectory
сопровождаемый именем исполняемого файла.
Как правило, вы должны предполагать, что ресурсы вашего приложения доступны только для чтения. Это верно в целом, а не только для магазина приложений.
Если вы хотите сохранить пользовательские настройки в виде списка свойств, используйте NSUserDefaults
вместо изменения файлов внутри приложения. Это будет "просто делать правильные вещи", то есть сохранить настройки ~/Library/Preferences
,