我想在我的应用程序的设置包中包含应用程序版本和内部修订,例如1.0.1(r1243).
Root.plist文件包含这样的片段......
<dict>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
<key>Title</key>
<string>Version</string>
<key>Key</key>
<string>version_preference</string>
<key>DefaultValue</key>
<string>VersionValue</string>
<key>Values</key>
<array>
<string>VersionValue</string>
</array>
<key>Titles</key>
<array>
<string>VersionValue</string>
</array>
</dict>
Run Code Online (Sandbox Code Playgroud)
我想在构建时替换"VersionValue"字符串.
我有一个脚本可以从我的存储库中提取版本号,我需要的是一种在构建时处理(预处理)Root.plist文件的方法,并替换版本号而不影响源文件.
我已按照这个答案将数据写入plist
但到目前为止,我的plist根本没有变化.
这是我的代码: -
- (IBAction)save:(id)sender
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"drinks" ofType:@"plist"];
NSString *drinkName = self.name.text;
NSString *drinkIngredients = self.ingredients.text;
NSString *drinkDirection = self.directions.text;
NSArray *values = [[NSArray alloc] initWithObjects:drinkDirection, drinkIngredients, drinkName, nil];
NSArray *keys = [[NSArray alloc] initWithObjects:DIRECTIONS_KEY, INGREDIENTS_KEY, NAME_KEY, nil];
NSDictionary *dict = [[NSDictionary alloc] initWithObjects:values forKeys:keys];
[self.drinkArray addObject:dict];
NSLog(@"%@", self.drinkArray);
[self.drinkArray writeToFile:path atomically:YES];
}
Run Code Online (Sandbox Code Playgroud)
我需要执行额外的操作吗?
我是iPhone SDK的新手,所以任何帮助将不胜感激.
我添加了一个Settings.bundle,但是在显示版本号时,我希望这些字段是只读的.
我已经看到一些建议,说要将类型从文本更改为标题,但是当我这样做时,不会显示设置条目.
