整合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:versionforKey:@"version_preference"]; NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];[[NSUserDefaults standardUserDefaults] setObject:buildforKey:@"build_preference"]; NSString *githash = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"GITHash"];[[NSUserDefaults standardUserDefaults] setObject:githashforKey:@"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设计中,设置页面时一个非常值得利用的地方,你可以在这里添加触发器,输入框或者让用户配置的参数选项。
整合Settings.bundle显示版本信息的更多相关文章
- Linux显示版本信息并退出
Linux显示版本信息并退出 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ cat --version cat (GNU coreutils) 8.21 Co ...
- PHP版本替换, phpinfo和php -v显示版本信息不一致
环境:OS X EI Capitan 10.11 & lnmp 背景: 1想将lamp(xampp安装的,php5.2)换成 lnmp(php7.0) 2php5.2卸载(xampp卸载& ...
- 在iOS App的图标上显示版本信息
最近读到一篇文章(http://www.merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/)介绍了一种非 ...
- linux查看操作系统版本信息
linux查看操作系统版本信息 摘自:https://www.cnblogs.com/vaelailai/p/7545166.html 一.linux下如何查看已安装的centos版本信息: 1.L ...
- chfn---改变finger命令显示的信息
chfn命令 chfn命令用来改变finger命令显示的信息.这些信息都存放在/etc目录里的passwd文件里.若不指定任何选项,则chfn命令会进入问答式界面. 语法 chfn(选项)(参数) ...
- Httpd服务入门知识-Httpd服务常见配置案例之显示服务器版本信息
Httpd服务入门知识-Httpd服务常见配置案例之显示服务器版本信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.httpd配置文件的组成 1>.主要组成 Globa ...
- 隐藏tomcat页面异常显示的版本信息
1.正常情况下,tomcat遇到404或500会返回版本信息: 2.有时我们不需要暴露版本信息,像这样: 3.只需要修改apache-tomcat-7.0.59的lib目录下的catalina.jar ...
- Android APP 读取 AndroidManifest.xml 中的版本信息详解
APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“androi ...
- iOS开发之iOS程序偏好设置(Settings Bundle)的使用
目录[-] 1.添加设置项 2.设置的控件 3.编辑设置项的文件 4.在程序中获取Settings 和写入Settings 添加UI 5.实现读取设置和保存代码 在Android手机上, 在某个程序里 ...
随机推荐
- AC日记——黑魔法师之门 codevs 1995
1995 黑魔法师之门 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 经过了16个工作日的紧张 ...
- ansible-playbook启动的多种方式
#quick start ## start the playbook with no password, it will run "sudo su - root" at the t ...
- 使用PreloadJS加载图片资源
一. 使用createjs里的LoadQueue函数实现异步加载图片,监听加载进度 1.实例对象LoadQueue加载队列对象 var queue = new createjs.LoadQueue(f ...
- 【spring cloud】子模块启动报错com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect
spring cloud子模块启动报错 Caused by: java.lang.ClassNotFoundException: com.netflix.hystrix.contrib.javanic ...
- selinue引起的ssh连接错误
在客户端执行ssh依然报错: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 在这个页面不小心看到了原因: http://ser ...
- ci框架文件上传
控制器类代码 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Upload ex ...
- tensorflow 运行 python convolutional.py时
Traceback (most recent call last): File "convolutional.py", line 326, in <module> tf ...
- ylb: SQL表的高级查询-子查询
ylbtech-SQL Server: SQL Server- SQL表的高级查询-子查询 SQL Server 表的高级查询-子查询. 1,ylb:表的高级查询-子查询返回顶部 --======== ...
- Ubuntu 14.04 使用VirtualBox 4.3.10 虚拟 Windows 7
Ubuntu 14.04 尽管不错,可是有些事仅仅能在Windows下才干完毕,所以在 Ubuntu 下利用虚拟机软件Oracle VirtualBox,虚拟安装个Windows系统是个不错的选择. ...
- Mongodb性能调优
摘要 1. Mongodb 适用场景简介 2. Mongodb 性能监控与分析 3. Mongodb 性能优化建议 关于Mongodb的几个大事件 1.根据美国数据库知识大全官网发布的DB热度排行,M ...