首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在编译时更新Root.Plist

在编译时更新Root.Plist
EN

Stack Overflow用户
提问于 2014-09-25 14:25:27
回答 1查看 373关注 0票数 0

我有一个应用程序设置文件,显示我们的应用程序的版本号。我们的想法是在编译时更新Root.plist,这样我们就不必更新两个地方而不是一个地方。我们更新theBuild设置版本,并希望这些设置在编译时更新Root.plist。

此代码提取生成设置的信息,如何更新Root.plist文件?

代码语言:javascript
复制
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,但它不起作用。如能提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-29 13:38:37

卓皮帮我解决这个问题很有帮助。设置好设置包和Root.plist文件后,我将以下代码添加到AppDelegate中,并从didFinishLaunchingWithOptions中调用它。

代码语言:javascript
复制
- (void)updateVersionInfo
{
   //This method updates the Root settings to display current Version and Build No in Settings Bundle
   NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
   NSString *appVersionNumber = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
   NSString *appBuildNo = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

   NSString *versionNumberInSettings = [NSString stringWithFormat:@"%@ Build %@", appBuildNo, appVersionNumber];

   [defaults setObject:versionNumberInSettings forKey:@"version"];
}

然后,此代码将info.plist文件中版本的内容添加到“我的设置”包中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26041085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档