1

我正在用 Dashcode 编写一个仪表板小部件,在背面,我有一个积分字符串。我想在该字符串中包含小部件的版本号,但如果可能,我想以编程方式从 Info.plist 中的CFBundleVersionorCFBundleShortVersionString键中获取它,以避免在更新小部件时必须在多个位置更改数字。

迄今为止,对 Apple 的开发人员文档、Google 和各种论坛的搜索都证明是徒劳的。我想知道的是是否有一种内置的方法可以做到这一点,Apple 包括但忘了提及(喜欢var version = widget.version();或其他东西),或者我的脚本是否必须在拔出之前拉入并解析整个 plist我真正想要的价值。

感谢您的任何帮助,您可以提供!

4

1 回答 1

1

我似乎找到了答案:使用 Dashcode 的“数据源”工具来读取 Info.plist 作为 XML 数据源。从那里,这篇博文向我展示了如何遍历 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
    }
}

由于creditsLabeldiv 的文本已经从本地化字符串开始,我得到一个漂亮的小标签,上面写着“1.0 版”。

于 2012-05-02T07:35:24.220 回答