iOS 在系统设置中展示Version, Build, Git等信息
在设置中,展示自定义内容,如下图INFO区域内容:
        
步骤:
1.在项目中添加Settings.bundle文件

Root.plist和Root.plist的Source code如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Title</key>
<string>Info</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<string>-</string>
<key>Key</key>
<string>version_preference</string>
<key>Title</key>
<string>Version</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<string>-</string>
<key>Key</key>
<string>build_preference</string>
<key>Title</key>
<string>Build</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<string>-</string>
<key>Key</key>
<string>githash_preference</string>
<key>Title</key>
<string>Git</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Root</string>
</dict>
</plist>
3.编辑脚本,设置Settings.bundle的值
#获取Version
Version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}")
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue ${Version}" "${PROJECT_DIR}/${PROJECT_NAME}/Settings.bundle/Root.plist" #获取Build
Build=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:2:DefaultValue ${Build}" "${PROJECT_DIR}/${PROJECT_NAME}/Settings.bundle/Root.plist" #获取Git当前git SHA1值
Git=`git rev-parse --short HEAD | awk '{print $1}'`
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:3:DefaultValue ${Git}" "${PROJECT_DIR}/${PROJECT_NAME}/Settings.bundle/Root.plist"
4.配置项目脚本
   路径: Target -> 项目名字 -> Build Phases
- 如果没有
Run Script就在该区域左上角+来增加; - 将步骤3的脚本复制粘贴即可。

 
ok! 完成!
另:
plist文件的Item主要有六种类型,分别是:Group、Multi Value、Slider、Text Field、Title、Switch;
Group代表分组样式。
Multi Value代表该项有子菜单可供选择。
Slider代表滑块效果。
Text Field输入框效果。
Title 显示标题。
Switch 显示开关。
如果想达到类似效果,只需参考上述类型并设置相关属性即可。
iOS 在系统设置中展示Version, Build, Git等信息的更多相关文章
- iOS 检测文本中的 URL、电话号码等信息
		
iOS 检测文本中的 URL.电话号码等信息 要检测文本中的 URL.电话号码等,除了用正则表达式,还可以用 NSDataDetector. 用 NSTextCheckingResult.Checki ...
 - unittest测试框架,HTMLTestReportCN模块生成的测试报告中展示用例说明的配置方法
		
1.前言 想要生成的html测试报告中展示每个测试用例的说明信息,方便了解测试案例的测试点或者其他信息,目前知道的有2种 2.方法介绍 * 方法1: 要添加说明的测试用例,将说明信息用3个引号包裹起来 ...
 - iOS 从应用中跳转至系统设置页面里的多种设置页面
		
我们在开发app过程中很多时候会需要设置系统权限,这时就需要在应用中跳转至系统设置页面权限设置页面,以下是自己结合网上的资料总结的一些经验: 直接从应用中跳转至系统设置中这个应用的权限设置页面 NSU ...
 - Xcode中的Version和Build的区别
		
Version( 应用程序发布版本号 ) Version对应的是CFBundleShortVersionString. Version 一般由产品部门确定,版本号是由分隔的整数组成的字符串,一般有2段 ...
 - [Environment Build] 工作中遇到的关于Git的问题
		
修改已经提交的commit中的author, commit git commit --amend --author 'Your Name <Your Email>' git commit ...
 - iOS开发 Xcode8中遇到的问题及改动
		
iOS开发 Xcode8中遇到的问题及改动 新版本发布总会有很多坑,也会有很多改动. 一个一个填吧... 一.遇到的问题 1.权限以及相关设置 iOS10系统下调用系统相册.相机功能,或者苹果健康 ...
 - Spring Boot中使用Actuator的/info端点输出Git版本信息
		
对于Spring Boot的Actuator模块相信大家已经不陌生了,尤其对于其中的/health./metrics等强大端点已经不陌生(如您还不了解Actuator模块,建议先阅读<Sprin ...
 - iOS应用发布中的一些细节
		
iOS应用发布中的一些细节 前言 这几天最大的新闻我想就是巴黎恐怖袭击了,诶,博主每年跨年都那么虔诚地许下“希望世界和平”的愿望,想不到每年都无法实现,维护世界和平这么难,博主真是有心无力啊,其实芸芸 ...
 - iOS开发——基础篇——iOS开发 Xcode8中遇到的问题及改动
		
iOS开发 Xcode8中遇到的问题及改动 新版本发布总会有很多坑,也会有很多改动. 一个一个填吧... 一.遇到的问题 1.权限以及相关设置 iOS10系统下调用系统相册.相机功能,或者苹果健康 ...
 
随机推荐
- 【Sqlite3】sqlite_sequence表(转)
			
sqlite_sequence表也是SQLite的系统表.该表用来保存其他表的RowID的最大值.数据库被创建时,sqlite_sequence表会被自动创建.该表包括两列.第一列为name,用来存储 ...
 - STM32 volatile关键字
			
为了提供对特殊地址的稳定访问. [C] 纯文本查看 复制代码 ? 1 2 3 int i=10; int j=i; //1 int k=i; //2 此时编译器对上面代码进行优化,因为在 ...
 - openfire在内网的情况下 文件传输代理的设置
			
openfire在内网的情况下 文件传输代理的设置 http://blog.csdn.net/v6543210/article/details/22506565
 - 2016多校第4场 HDU 6076 Security Check DP,思维
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6076 题意:现要检查两条队伍,有两种方式,一种是从两条队伍中任选一条检查一个人,第二种是在每条队伍中同 ...
 - Scrapy爬虫:抓取大量斗图网站最新表情图片
			
一:目标 第一次使用Scrapy框架遇到很多坑,坚持去搜索,修改代码就可以解决问题.这次爬取的是一个斗图网站的最新表情图片www.doutula.com/photo/list,练习使用Scrapy ...
 - Python数据处理实战
			
一.运行环境 1.python版本 2.7.13 博客代码均是这个版本2.系统环境:win7 64位系统 二.需求 对杂乱文本数据进行处理 部分数据截图如下,第一个字段是原字段,后面3个是清洗出的字段 ...
 - HIbernate学习笔记5 之 查询
			
一.HQL查询 * 按条件查询,条件中写的是属性名,之后在query对象为添加赋值,如: String hql = " from User where uid=?"; Sessio ...
 - 12:django 模板 内建过滤器
			
django 模板 内建过滤器 add{{ value|add:"2" }} 对象的加法,如果都是整数类型,简单的算术加法:如果是列表,则是列表的相加 如果无法执行对象的相加,比如 ...
 - mysql远程访问cannot connect(10038) 问题解决的过程
			
今天用Navicat访问虚拟机上的mysql,无法访问报cannot connect(10038). 首先看是否可以telnet,本机cmd,telnet 192.168.209.128 3306,结 ...
 - 小程序的一个tab切换
			
<view class="tab-left" bindtap="tab"> <view class="{{tabArr.curHdI ...