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

转载于:https://www.cnblogs.com/Camier-myNiuer/p/4116059.html

整合Settings.bundle显示版本信息相关推荐

  1. Eclipse中与CVS相连的工程中的文件,不显示版本信息时,如何处理(重启Eclipse)!

    前言: 前一段时间做リリース工作,在这之前,要把代码先登录 down了许多工程下来,但是突然发现工程中的文件不显示版本信息了~ 问同事说,原因是Eclipse内存不够了,重启就好了,于是重启一下就好了 ...

  2. docker 无法正常启动或版本信息会报错 Cannot connect to the Docker daemon at

    安装正常,但是docker version的时候会出现以下信息,这是为什么呢? 解决办法: 这是因为docker的engine 基于Device Mapper提供的一种存储驱动,而它又依赖与于devi ...

  3. 查看数据库 MySQL 的版本信息的命令语句

    文章目录 一.mysql -V 二.登录数据库后会显示版本信息 三.mysqladmin -uroot -p version 四.select version() 五.命令 status 六.show ...

  4. ZooKeeper使用get命令无法获取节点版本信息

    问题描述:在项目运行时需要给节点赋值,代码如下: Stat status = zkServer.getZookeeper().setData("/testnode", " ...

  5. 隐藏版本信息号返回服务器名,配置服务器版本信息隐藏

    vi /etc/httpd.conf Include conf/extra/httpd-default.conf //去掉注释 cd /usr/local/httpd/conf/ vi extra/h ...

  6. Linux - 如何查看Ubuntu系统的版本信息

    1.打开终端:可以用快捷键Ctrl+Alt+t,也可以点击左侧的终端图标: 2.命令:cat /proc/version 作用: 查看目录"/proc"下version的信息,也可 ...

  7. linux查看操作系统版本信息

    一.linux下如何查看已安装的centos版本信息: 1.Linux查看当前操作系统版本信息 cat /proc/version Linux version 2.6.32-696.el6.x86_6 ...

  8. sqlserver linux版本查询,sqlserver 各版本信息

    方法 1:通过使用 SQL Server Management Studio 中的对象资源管理器连接到服务器.连接对象资源管理器后,它将显示版本信息(在括号中),以及用于连接到 SQL Server ...

  9. 查询server服务器版本信息,sqlserver多版本查看版本号

    今天要查询自己的装的sqlserver2008 是否是R2版本,搜索了下,发现很多人查询此问题,现在记录如下,通过版本命令查询 同时也了解了哥哥sql server的对应版本好,一看就非常清晰了,记录 ...

  10. Linux 下查看Ubuntu系统版本信息

    文章目录 1. cat /proc/version 2. uname -a 3. uname -m 4. lsb_release -a 5 其他 1. cat /proc/version 作用: 查看 ...

最新文章

  1. Linux下防御arp***的方法
  2. 虚基类(c++细节篇七)
  3. TCP建立连接与断开连接的过程
  4. Firebug控制台详解
  5. 深入理解MySQL底层架构,看这一篇文章就够了!
  6. 今夏发布的Terraform 0.12将提供for循环和第一类表达式
  7. IIS安装2个SSL_SSL的申请与https使用
  8. 找出N个无序数中第K大的数
  9. 最少点字典序最短路径_LeetCode 89,因为题目晦涩而被点了1500+反对的搜索问题...
  10. Vbs程序批量修改防火墙路由
  11. ajax直接发PUT,DELETE请求报错500
  12. 潘爱民:计算机程序的演进——我的程序人生三十年
  13. 最热网友收藏:深入理解C语言指针的奥秘((2007年第3周)
  14. 查看本机mac地址/ ipconfig /all 的一点笔记
  15. 28法则在建站、优化、运维中的体现
  16. 实验2:MIPS指令系统和MIPS体系结构
  17. 购买老域名,利用桔子seo来查找域名的历史快照信息
  18. select * from dual (转)
  19. 使用docker创建fdfs并使用
  20. realplayer java,在网页中使用realplayer播放rm文件

热门文章

  1. mysql连接nacat_【mysql】使用Navicat连接数据库
  2. C++11for(auto iter : container)auto简介
  3. 力扣算法题—071简化路径
  4. Commons IO 2.5-IOUtils
  5. spring+hibernate中clob、blob字段的处理方法
  6. 深入浅出CChart 每日一课——快乐高四第九课 于无声处,CChart内置功能介绍之数据存取篇...
  7. 自动化CodeReview - ASP.NET Core请求参数验证
  8. 直接拿来用!十大Material Design开源项目
  9. 4.1 - 《机器学习基石》Home Work 1 Q.15-17
  10. 23中设计模式之简单工厂模式