У меня есть программа установки, которая помещает приложение в /Applications
. После того, как приложение скопировано там, я написал плагин для установки, чтобы получить пользовательские конфигурации, такие как адрес сервера и номер порта. Плагин записывает эти конфиги в файл plist внутри /Applications/myapp.app.Objective-C: Редактировать содержимое plist в комплекте приложений
Я пишу:
NSString *filePath = @"/Applications/emptyapp.app/Contents/Resources/DummyConfig.plist";
NSString *test = @"somestring";
NSError *error;
[[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
[test writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
if(error){
[self alert:error.localizedDescription];
}
Im получая разрешение отказано для записи там, что имеет смысл, но как я могу обойти эту проблему?
Эти конфигурации являются одноразовыми настройками и должны быть доступны только администраторам, а не обычным пользователям.
(Я использую Packages, чтобы сделать установщик и создать плагин в Objective C. В пакетах есть флажок «требуется пароль администратора», но он, похоже, не использует эти учетные данные для чего-либо, так как я не могу написать приложение bundle.)
I не думайте, что вы должны написать в App Bundle. Если Apple разрешит это, тогда другие приложения легко взломают и изменят ситуацию в других приложениях. Что вам нужно сделать, это записать в папку «Документы» приложения. – GeneCode
Хорошо, я придумал работу с временными файлами. благодаря – theQuestions