我正在Dashcode中编写一个Dashboard小部件,而在背面,我有一个信用卡的字符串。我想在该字符串中包含窗口小部件的版本号,但如果可能,我想以编程方式从Info.plist中的CFBundleVersion
或CFBundleShortVersionString
键中获取它,以避免在多个位置更改数字我是否以及何时更新小部件。
到目前为止,对Apple的developer documentation,谷歌和各种论坛的搜索已经证明是徒劳的。我想知道的是,是否有一个内置的方法来做到这一点Apple包括但忘了提及(如var version = widget.version();
或其他),或者我的脚本是否必须拉入并解析整个plist在取出我真正想要的一个值之前。
感谢您提供的任何帮助!
答案 0 :(得分:1)
我似乎找到了答案:使用Dashcode的“数据源”工具将Info.plist作为XML数据源读取。从那里,this blog post向我展示了如何遍历plist的结构并获取正确的字符串(在本例中,文件中的第五个<string>
元素,对应于CFBundleShortVersionString
。
我最终得到的功能:
function getWidgetVersion() {
var dataSource = dashcode.getDataSource("infoPlist");
var version = dataSource.selection().valueForKey("dict").valueForKey("string")[4]; // This line and the previous could probably be combined for the sake of brevity
if (typeof(version) == 'string') {
document.getElementById("creditsLabel").innerHTML += version; //I'll change this to just pass the number on
}
}
由于creditsLabel
div的文本已经使用本地化字符串启动,因此我得到了一个很好的小标签“1.0版”。