每个application都使用Info.plist文件来存储以上的元信息,从名称上也可以判断出Info.plist就是以上提到的“属性列表”。
元信息包括:直接向用户展示信息、系统内部用来标识你的app或其支持的文档类型、系统框架用来辅助app的加载,通过一种特殊的信息属性列表文件,app向系统提供自己的元信息。
IOS用Info.plist来决定bundle所显示的icon,当前app支持打开的文档类型,等等其它的信息。正如以上所提到的,Info.plist本身是一种结构化的文本文件,它包含了一些重要的配置信息。Info.plist文件多数情况下是以UTF-8进行编码,并且其内部的配置内容其实是以XML格式进行组织。XML的根节点是一个词典(dictionary),包含描述bundle各个方面的keys和values。系统读取该文件,并获取app的配置信息。
按照约定,属性列表文件的名称就是Info.plist。该文件名称时大小写敏感的,并且首字母必须是大写的"I".在IOS的apps中,当新工程创建完毕后,会自动创建一个名为<project>-Info.plist文件,该文件位于bundle目录(Supporting Files)的顶部,在工程构建时,该文件用以生成Info.plist文件,之后添加至bundle中。
主要字段:
Localiztion native development region --- CFBundleDevelopmentRegion 本地化相关,如果⽤户所在地没有相应的语言资源,则用这个key的value来作为默认
Executaule dile -- CFBundleExecutable 程序安装包的名称
Bundle name --- CFBundleName 产品名称
Bundle OS Type code -- CFBundlePackageType ⽤来标识束类型的四个字母长的代码
Application require iPhone environment -- LSRequiresIPhoneOS 用于指示程序包是否只能运行在iPhone OS 系统上。Xcode自动加入这个键,并将它的值设置为true。您不应该改变这个键的值。
NSString *path = [[NSBundle mainBundle] pathForResource:@"Info.plist" ofType:nil];
NSDictionary *dictiondary = [NSDictionary dictionaryWithContentsOfFile:path];
NSString *version = [dictiondary valueForKey:@"CFBundleShortVersionString"];