Info.plist用于向iOS提供关于app,bundle活着framework的一些重要信息。它指定了比如一个应用应该怎样启动,它如何被本地化,应用的名称,要显示的图标,还有更多。
Info.plist文件实际上是苹果预定义schema的XML文件。
为了构建一个设备相关的健,你在健的后面要加上~iphone或者~ipad。
每个健代表的意思
控制应用的名称
CFBundleName(String)
这个健指定了你的应用的名称。
CFBundleDisplayName(String)
本地化,可以通过InfoPlist.strings文件来为每个语言指定一个合适的值
应用标识
CFBundleIdentifier(String)
它包含一个唯一标识的字符串,它是从你在iOS Provisioning Portal创建的App ID取得的
App ID包含两个部分:Team ID和Bundle ID
应用版本
CFBundleShortVersionString(String)
这个值是一个字符串,用来指定你在APP Store上面看的的版本号,这个值必须在每一次App Store发布版本中递增
CFBundleVersion(Integer)
这个健的值是一个证书,你可以在每一次发布时增加它。
应用图标
CFBundleIconFile(String - 在3.2版本被废弃)
这是指定应用图标最早的方法。
UIPrerenderedIcon(Boolean)
这个键自从第一个iOS SDK就有了,它告诉iOS是否给你应用的图标添加光照效果。
CFBundleIconFiles(Array - 在5.0版本被废弃)
这个键的引入,是用来处理在iPad和retina屏幕的出现时,所需图标数量的增长的。这个健的值应该是一个字符串数组。
CFBundleIcons(Dictionary)
这个健是iOS 5.0增加的,可以让开发者指定Newsstand图标和普通应用的图标。
控制应用初始化启动
UILaunchImageFile(String)
启动图片
NSMainNibFile(String)
如果你用NIB的话,这个就是一个很重要的键。它指定了当你应用启动的时候,用于创建初始化窗口和相关对象的NIB文件。
UIMainStoryboardFile(String)
如果你用Storyboard的话,这是一个很重要的键。它指定可一个storyboard文件,用于在应用启动的时候创建初始界面。
用来访问用户信息的Reason strings
iOS6中需要从用户那里得到授权的数据。
NSCalendarsUsageDescription(String)
当应用第一次视图访问用户的日历的时候,会出现一个弹出框来向用户请求权限。如果你对这个键设置了一个值,那么这个值将会显示在弹出框中。
NSContactsUsageDescription(String)
应用第一次尝试访问用户的通讯录的时候,会出现一个弹出框申请权限。就像是前一个键,你对这个键指定的值,将会显示在弹出框中。
NSPhotoLibraryUsageDescription(String) 照片
NSRemindersUsageDescription(String) 备忘录
NSLocationUsageDescription(String) 位置信息
自定义URL和文档类型
CFBundleURLTypes(Array)
这个键可以让你指定一个你的应用支持的URL的一个数组。这个数组包含的元素是字典,每一个都代表你应用支持的一种URL规则,有如下的键:
CFBundleURLSchemes : 字符串数组,每一个元素代表这个规则支持的URL
CFBundleTypeRole :当打开这个URL时你的应用所扮演的角色。
CFBundleURLIconFile : 指定对这种URL所使用的图标的文件名
CFBundleURLName :这应该时一个唯一的字符串,用来区分不同的URL类型
CFBundleDocumentTypes(Array)
这个键可以让你指定你的应用可以处理哪种类型的文档。
这个数组中的值都是一个字典,包含如下的键
CFBundleTypeIconFiles:图标文件的数组
CFBundleTypeName:唯一的字符串,区分URL类型
LSItemContentTypes
LSHandlerRank
UIImportedTypeDeclarations(Array)
为了允许你的应用打开那些不属于它的类型,你需要导入那个UTI,并且这个时你要用到的键。
使用iCloud
NSUbiquitousDisplaySet(String)
iCloud使用这个键来表示你应用的文件存储。可以把它想象成iCloud中的一个目录用来存放你应用中的文件。
Core OS
***********以下为系统自动修改,不用手动修改*******
LSRequiresIPhoneOS(Boolean)
这个键时iOS应用运行在设备上面必须的,并且它的值必须时true。
CFBundlePackageType(String)
在iOS中,你至处理应用,但在Mac中,Info.plst还可以引用其他类型的项目
CFBundleExecutable(String)
iOS中的应用会被打包成.app文件。在这个文件中包含了所有的资源,并且还有一个可执行文件。这个键时一个字符串,用来指定可执行文件的名称。
CFBundleInfoDictionaryVersion(String)
Info.plst的结构很可能会随着时间改变,那么就需要告诉操作系统,当前这个文件对应的版本是什么。
CFBundleSignature(String)
这个键和Mac有关,和iOS没有特别的关系。
本地化
CFBundleLocalizations(Array)
系统通过查找你应用提供的Iproj目录来决定你的应用支持哪些语言地区。这个键的值是一个字符串数组,数组中的每一个值都代表支持的地区。
CFBundleDevelopmentRegion(String)
当你开发你的应用的时候,你通常会使用你本地的语言来写它。这个键的值是一个字符串,如果用户请求的区域没有必须的资源的话,它用来表示默认的本地化区域。
用户界面
UISupportedInterfaceOrientations(Array)
这个键的值是一个你应用支持的屏幕方向的数组。可用选项有:
UIInterfaceOrientationPortrait:Home键在下方的竖屏模式
UIInterfaceOrientationPortraitUpsideDown:Home键在上方的竖屏模式
UIInterfaceOrientationLandscapeLeft:Home键在左方的竖屏模式
UIInterfaceOrientationLandscapeRight:Home键在右方的竖屏模式
UIInterfaceOrientation(String)
如果你的应用值支持一个方向,那么你应该设置这个键。它保证在你应用启动的时候,状态栏在正确的方向,而不是启动的时候在一个方向,然后又通过动画移动到另外一个方向。
UIStatusBarHidden(Boolean)
这个键表示,在应用启动的时候,状态栏是否隐藏。
UIStatusBarStyle(String)
这个键设置应用启动时状态栏的初始风格。
UIStatusBarStyle的枚举值: UIStatusBarStyleDefault、
UIStatusBarStyleBlackTranslucent、
UIStatusBarStyleBalackOpaque
UIStatusBarTintParameters(Dictionary)
在iOS6中状态栏可以进行一些美化。
在这个字典中又四个键:
Style:表示导航条的barStyle属性
Translucent:表示导航条的translucent属性
TintColor:这个指定了导航条的修饰颜色。
groundImage:如果你的导航条有背景图片,那么在这里把图片的文件名写上。
应用控制
UIRequiredDeviceCapabilities(Array or Dictionary)
它能让你指定设备必须要有的特性,或者设备必须不能有的特性。
UIBackgroundModes(Array)
当你需要你的应用在后台运行时,就需要这个后台模式。
数组里包含应用需要的所有后台模式,可以从以下几个值里面选择:
audio:使用音频框架来播放或者录制音频。
location:需要在后台访问用户的位置信息。
voip:这个应用支持IP语音,需要在后台进行Internet连接和音频播放。
newsstand-content:使用Newsstand API在后台下载并处理内容,这允许当一个代表有新的可用发布的推送发进来的时候唤醒应用。
external-accessory:使用External Accessory框架来和外部的设备惊醒通讯
bluetooth-central:使用CoreBluetooth框架和外部设备进行通讯
MKDirectionsApplicationSupportedModes(Array)
这个iOS6新增加的一个键。它允许你为特定的区域和交通模式指定你的应用的路由信息。
UIDeviceFamily(Number or Array)
Xcode自动添加这个键,所以你不需要自己添加。它表示应用支持哪些设备。
UIAppFonts(Array)
如果你需要额外的字体。这个键可以为你的应用添加非标准的字体。
UIApplicationExitsOnSuspend(Boolean)
如果这个键设置为true,那么应用将会直接中断,而不是切换到后台。
UIFileSharingEnabled(Boolean)
如果你希望用户能使用iTunes的文件共享功能将文件从你的应用的document目录传入或传出,那么你需要设置这个键的值为true。
UINewsstandApp(Boolean)
如果 你的应用时Newsstand类型的,那么你应该将这个键设置为true。
UIRequiresPersistentWiFi(Boolean)
iOS在默认情况下,如果设备30分钟没有活动,它就会关闭WiFi连接。如果你设置这个键的值为true,那么这个行为会被覆盖,只要你的应用是打开的,网络连接就不会关闭。
UISupportedExternalAccessoryProtocols(Array)
这个键指定了和附加的硬件设备通讯的协议。
高级视图控制
UIViewEdgeAntialiasing(Boolean)
默认情况下,你的视图被iOS的渲染系统绘制,不包括反锯齿功能。这是因为不是用反锯齿运行速度会快很多。
UIViewGroupOpacity(Boolean)
当你设置了视图的透明度,它所有的子视图都被渲染成同样的透明度,但会在它后面被渲染。