У меня есть файл настроек приложения, который отображает номер версии для нашего приложения. Идея состоит в том, чтобы обновить Root.plist при компиляции, чтобы нам не нужно было обновлять два места, а не одно. Мы обновляем версию настроек Build и хотели бы, чтобы эти настройки обновили Root.plist при компиляции.Обновление Root.Plist on Compile
Этот код извлекает информацию для параметров сборки, как я могу обновить файл Root.plist?
NSString *appBuildNo = [[NSBundle mainBundle]objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
NSString *appBuildVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
NSString *appBuildStr = [NSString stringWithFormat:@"%@ Build %@", appBuildNo, appBuildVersion];
NSURL * settingsURL = [[NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"Settings" withExtension:@"bundle"]]
URLForResource:@"Root" withExtension:@"plist"];
NSDictionary * settingsDict = [NSDictionary dictionaryWithContentsOfURL:settingsURL];
NSArray * settingsArr = [settingsDict objectForKey:@"PreferenceSpecifiers"];
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
for(NSDictionary * setting in settingsArr){
NSString * key = [setting objectForKey:@"DefaultValue"];
[defaults setValue:appBuildStr forKey:key];
[defaults synchronize];
break;
}
Идея заключается в том, что по умолчанию обновляется Root.plist, но он не работает. Любая помощь была бы оценена
Да, напишите сценарий, реализованный как отдельная цель сборки, используя шаблон * External Build System * и используйте 'PlistBuddy' для обновления' info.plist'. Затем сделайте целевую страницу приложения зависимой от этой цели. – Droppy
Спасибо за ваш ответ, я не знаком с методом, который вы описываете, можете немного расширить его. Большое спасибо – user616076