整合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工程里面去

sss.gif

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"拖到工程文件的根目录下

1-sIQynQtdqGJQEG-15re5dA.gif

这个脚本的初始版本可以在这里下载。

4.在构建项目的时候添加新的运行脚本

1-EmNRU2ZN9mWKSPavV2Qb_Q.png

1
"${SRCROOT}/xcode-git-hash.sh"

5.然后在目标信息的plist中添加GITHash

1-ox7dINu7DaTjRtLUbhWVPw.png

6.接着构建并运行你的项目,然后在应用的设置中查看版本信息

1-joIIaI2p0bHxAzASVZbaQg.png

好了,其实很简单,也花不了多少时间。

GitHub上的示例程序在这里

总结

在App的UI设计中,设置页面时一个非常值得利用的地方,你可以在这里添加触发器,输入框或者让用户配置的参数选项。

 

posted @ 2014-11-23 00:55  天牛  阅读(292)  评论(0编辑  收藏  举报