整合Settings.bundle显示版本信息
本文转载至 http://www.cocoachina.com/ios/20141103/10112.html
iOS开发XCode版本管理Debug开发Tips
现在你有一个App,你同事的iPad用着用着出了点故障,Boss也说他的iPhone出了点问题,然后…你还有一些测试设备要跑……
然后呢,这些设备都扔到了你这个苦逼程序员的手中善后,不过现在有个问题…你需要确认这些不同的设备都装了哪个该死的版本…是昨天弄个的TestFlight版本呢…还是上个星期在AppStore上发布的版本…或者是为了某些奇奇奇怪的需求而特制的版本…(好痛苦啊)
这样,我们需要确认一下这个App属于哪一个发布版,建造版还是Git上的提交版本,不过不需要你在App里再去构建新代码来显示这些东西,我们就可以在应用的设置页面看到这些信息。
1.下载这一个工程然后把里面的Settings.bundle拖到你的App工程里面去
2.把如下代码加入到AppDelegate.m文件里
1
2
3
4
5
6
7
8
9
10
11
|
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@ "CFBundleShortVersionString" ]; [[NSUserDefaults standardUserDefaults] setObject:version forKey:@ "version_preference" ]; NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@ "CFBundleVersion" ]; [[NSUserDefaults standardUserDefaults] setObject:build forKey:@ "build_preference" ]; NSString *githash = [[NSBundle mainBundle] objectForInfoDictionaryKey:@ "GITHash" ]; [[NSUserDefaults standardUserDefaults] setObject:githash forKey:@ "githash_preference" ]; |
1
2
3
4
5
6
7
8
|
let version = NSBundle.mainBundle().objectForInfoDictionaryKey( "CFBundleShortVersionString" ) NSUserDefaults.standardUserDefaults().setObject(version, forKey: "version_preference" ) let build = NSBundle.mainBundle().objectForInfoDictionaryKey( "CFBundleVersion" ) NSUserDefaults.standardUserDefaults().setObject(build, forKey: "build_preference" ) let githash = NSBundle.mainBundle().objectForInfoDictionaryKey( "GITHash" ) NSUserDefaults.standardUserDefaults().setObject(githash, forKey: "githash_preference" ) |
3.把"Xcode-git-hash.sh"拖到工程文件的根目录下
这个脚本的初始版本可以在这里下载。
4.在构建项目的时候添加新的运行脚本
1
|
"${SRCROOT}/xcode-git-hash.sh" |
5.然后在目标信息的plist中添加GITHash
6.接着构建并运行你的项目,然后在应用的设置中查看版本信息
好了,其实很简单,也花不了多少时间。
GitHub上的示例程序在这里。
总结
在App的UI设计中,设置页面时一个非常值得利用的地方,你可以在这里添加触发器,输入框或者让用户配置的参数选项。