您的位置:首页 > 移动开发 > IOS开发

IOS Info.plist 文件中部分常用选项解析

2016-11-07 12:54 453 查看
学习 IOS 开发也有一段时间了,但却一直没有对工程中的 Info.plist 文件作挖掘。今天主要针对此文件作一下详细分析。

建立一个工程后,会在Supporting files下面看到一个”工程名-Info.plist”的文件,这个是对工程做一些运行期配置的文件,很重要,不能删除。如果使用文本编辑器打开这个文件,会发现这是一个XML格式的文本文件,一般我们不用文本编辑器直接编辑这个文件,而是通过Xcode编辑。

文件示例图(比较常用的几个选项用红色矩形框标识):



下面对部分常用选项作分析解释(括号内使用文本编辑器打开时看到的 key):

Localiztion native development region(CFBundleDevelopmentRegion) —— 本地化相关,如果用户所在地没有相应的语言资源,则用这个key的value来作为默认。

Bundle identifier(CFBundleIdentifier) —— 软件的唯一标识字符串,如果使用模拟器跑应用,这个字段没有用处,如果需要把应用部署到设备上,必须生成一个证书,而在生成证书的时候,在 apple 的网站上需要增加相应的 app IDs. 这里有一个字段 Bundle identifier,如果这个Bundle identifier 是一个完整字符串,那么文件中的这个字段必须和后者完全相同,如果 app IDs 中的字段含有通配符*,那么文件中的字符串必须符合后者的描述。

该标识符的另外一个比较常见的用处是辅助系统后台的推送机制。举个例子,有时候手机的 QQ 和微信并没有打开,但却也能接收到消息推送,此处便是标识符的功劳,系统通过识别标识符而得知准确的应用推送对象,不会说把 QQ 消息推送到微信端。

Bundle versions string, short(CFBundleShortVersionString) —— 应用程序的版本号(面向用户市场)。

Bundle version(CFBundleVersion) —— 编译版本号。

Application require iPhone environment(LSRequiresIPhoneOS) —— 用于指示程序包是否只能运行在iPhone OS 系统上。Xcode自动加入这个键,并将它的值设置为true。不应该改变这个键的值。

supported interface orientations(UISupportedInterfaceOrientations) —— 程序默认支持的方向。

在 Info.plist 文件中修改部分选项可能不是很方便,实际上,还有一个可视化界面可供选择修改——工程文件首页。

如下图所示:



在这个界面就能够更直观地去修改部分选项,这里面的选项大多数都可以与 Info.plist 文件对应。

下面以获取软件版本信息为例,说说 Info.plist 文件的读取操作:

方法一:

// File:获取文件的全路径 —— 文件在哪(主bundle)
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Info.plist" ofType:nil];
// 1. 解析 Info.plist
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:filePath];
// 2.获取当前的版本号
NSString *Version = dict[@"CFBundleShortVersionString"];

NSLog(@"%@",Version);


方法二:

NSString Version = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];

NSLog(@"%@",Version);


由此可见,方法二实现起来更方便,实际上是对方法一的封装。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: