info.plist

    为了提供更好的用户体验,IOS 和 OS X的每个app或bundle都依赖于特殊的元信息(meta Information).

    有多种用途,包括直接向用户展示信息,系统内部用来标识你的app或其支持的文档类型

系统框架用来辅助app的加载,通过一种特殊的信息属性列表文件,app向系统提供自己的元信息。 

        属性列表可用来构建任意数据,这些数据在运行时是可访问的。每个属性列表都包含了一个bundle的配置信息。文件中的keys和values描述了许多要应用于该bundle的行为以及配置选项。Xcode通常会为每个基于bundle的工程自动创建该属性列表文件,并且提供许多合适的keys以及其对应的默认的values。之后可以编辑该文件,添加任何工程所需的keys和values,或修改现有的keys所对应的values。

 在Info.plist中添加key

     创建新工程时生成的Info.plist文件,默认情况下会提供支持app加载和运行所需要的多数重要的keys以及初始化对应的values。在App的加载运行时,系统会收集Info.plist文件中所包含的配置信息。根据App的需要,我们可以添加所需的额外的keys,当我们选中每行配置选项时,在key所属列的右侧,会出现“+”“-”示意的标记,

    单击加号,会在当前行的下一行插入新行,之后可以选择性的添加新key,并设置其value.plist的type一栏提供了value的可选数据类型,包括:String,Date,Array,Number,Data,Boolean,Dictionary。

        因为plist也属于文本文件,并以XML格式进行内容的组织,我们可以用任何支持UTF-8的文本编辑器打开并对其进行各种编辑操作。但因为Xcode本身提供的对于plist文件内容的操作已经非常方便,基本上利用Xode编辑plist还是首选。要查看XML下plist文件的内容我们可以选中TestPro-Info.plist文件然后右键——>Open As ——>Source Code 

Info.plist中key的类型分类

根据功能的分类,Info.plist文件的keys大致划分为以下几类

 

         Core Foundation Keys              

          该类的keys的特点是以CF为前缀,用以代表Core Foundation,描述了一些常用的行为项

 

         Lanch Services Keys 

            加载服务项,提供了App加载所依赖的配置,描述了app启动的方式选择。 

 

         Cocoa Keys 

            Cocoa框架或Cocoa Touch框架依赖这些keys来标识更高级别的配置项目,如app的main nib文件,主要类。这些key描述影响着Cocoa和Cocoa Touch框架初始化和运行app的运行方式 

 

         UIKit Keys 

            描述IOS Apps的行为,每个IOS应用都依赖于Info.plist的keys来与IOS系统通信。Xcode提供了生成的plist文件提供了所有app所需的那些比较重要的keys。 

            但app可能需要扩展默认的plist来描述更多的信息,如定制app启动后的默认旋转方向,标识app是否支持文件共享等等。

         OS X Keys 

            描述了Mac Apps的行为。 

各键说明

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

 

 

Bundle display name --- CFBundleDisplayName 设置程序安装后显示的名称。应⽤程序名称限制在10-12个字符,如果超出,将被显示缩写名称。

Executaule dile -- CFBundleExecutable 程序安装包的名称

Bundle identidier --- CFBundleIdentidier 该束的唯一标识字符串,该字符串的格式类似 com.yourcompany.yourapp,如果使⽤用模拟器跑你的应用,这个字段没有用处,如果你需要把你的应⽤部署到设备上,你必须⽣成一个证书,⽽而在⽣生成证书的时候,在apple的⽹网站上需要增加相应的app IDs.这⾥有一个字段Bundle identidier,如果这个Bundle identidier是一个完整字符串,那么文件中的这个字段必须和后者完全相同,如果app IDs中的字段含有通配符*,那么文件中的字符串必须符合后者的描述。

InfoDictionary version --- CFBundleInfoDictionaryVersion Info.plist 格式的版本信息

Bundle name --- CFBundleName 产品名称

Bundle OS Type code -- CFBundlePackageType ⽤来标识束类型的四个字母长的代码

Bundle versions string, short --- CFBundleShortVersionString ⾯向用户市场的束的版本字符串

Bundle creator OS Type code --- CFBundleSignature 用来标识创建者的四个字母长的代码

Bundle version --- CFBundleVersion 应⽤程序版本号,每次部署应用程序的一个新版本时, 将会增加这个编号,在app store上用的。

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

Main storybard dile base name -- UIMainStoryboardFile 这是一个字符串,指定应用程序主nib文件的名称。

 supported interface orientations -- UISupportedInterfaceOrientations 程序默认支持的设备方向。

        Info.plist,找到需要加载的入口storyboard,例如Main.storyboard,读取里面的UIViewController。然后就启动起来了

 

 

一个storyboard对应一个class,例如默认的main.storyboard是对应ViewController。如下图:

 

 

TIPS

iPhone或iTouch的宽为320像素,高为480像素

设置图标

在项目的images.xcasets中,选中。然后看到AppIcon右键Add Assets ->App Icons & Launch images->New ios App Icon/New iOS launch Image 。然后拖进去即可。

增加开发TEAM

选中项目,右边有DELELOPMENT TEAM,或者直接搜索也可。

绑定问题

修改Identity 中

Bundle Identifier字符串。