本文转载至 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设计中,设置页面时一个非常值得利用的地方,你可以在这里添加触发器,输入框或者让用户配置的参数选项。