info.plist一些字段含义

Info.plist 用于向 iOS 提供关于 app , bundle 或者 framework 的一些重要信息。它指定了比如一个应用应该怎样启动,它如何被本地化,应用的名称,要显示的图标,还有更多。 Info.plist 文件实际上是苹果预定义 schema 的 XML 文件。

为了构建一个设备相关的健,你在健的后面要加上 ~iphone 或者 ~ipad 。

常用字段:

1. 获取版本信息:

NSDictionary*infoDic = [[NSBundle mainBundle] infoDictionary];

NSString *localVersion = [infoDic objectForKey: @"CFBundleShortVersionString" ];

2 . 应用支持 http 网络请求 :

在 Info.plist 中添加 NSAppTransportSecurity 类型 Dictionary 。      在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型 Boolean , 值设为 YES

注意类型 NSAppTransportSecurity 为 Dictionary , NSAllowsArbitraryLoads 为 Boolean ,复制粘贴的时候,不要多了空格, segment fault 页面上直接复制,经常会多一个出空格!

控制应用的名称:

表A-1 控制应用的名称

字段 

类型

是否必须

摘要

CFBundleName

String

Yes

bundle的简称,  这个健指定了你的应用的名称

CFBundleDisplayName String

No

本地化的bundle名,  本地化,可以通过 InfoPlist.strings 文件来为每个语言指定一个合适的值

CFBundleDisplayName

CFBundleDisplayName 字段指定了一个字符串值来标识 bundle 的显示名称。 Finder 和其他用户界面组件会把它显示给用户。这个名 称可以与文件系统中的 bundle 名不同。通过把字段加入适当的 .lproj 子目录中的 InfoPlist.strings 文件,就可以实现该字段的本地 化。如果您需要本地化这个字段,您还应该提供一个 CFBundleName 字段的本地化版本。

CFBundleName

CFBundleName 指定了该 bundle 的简称。简称应该小于  16 个字符并且适合在菜单和  “ 关于 ” 中显示。通过把它加入到适当的 .lproj 子文件 夹下的 InfoPlist.strings 文件中,该字段可以被本地化。如果您本地化了该字段,那您也应该提供一个 CFBundleDisplayName 字段的本地化版本。

应用标识+应用版本:

表A-2应用标识+应用版本

字段

类型

是否必须

摘要

CFBundleIdentifier

String

YES

该bundle的唯一标识字符串。该字符串的格式类似java包的命名方式,例如:com.apple.myapp。

CFBundleShortVersionString

String

YES

这个值是一个字符串,用来指定你在 APP Store 上面看的的版本号,这个值必须在每一次 App Store 发布版本中递增

CFBundleVersion

String

YES

可执行文件的创建号,  这个健的值是一个证书,你可以在每一次发布时增加它。

CFBundleIdentifier

CFBundleIdentifier 字段指定了 bundle 的一个唯一的标识字符串。该标识符采用了类似 Java 包的命名方式,例如 com.apple.myapp 。该 bundle 标识符可以在运行时定位 bundle 。预置系统使用这个字符串来唯一地标识每个应用程序。

它包含一个唯一标识的字符串,它是从你在 iOS Provisioning Portal 创建的 App ID取得的 App ID 包含两个部分: Team ID 和 Bundle ID

CFBundleShortVersionString

CFBundleShortVersionString 字段指定了 bundle 的版本号。一般包含该 bundle 的主、次版本号。这个字符串的格式通常是 “n.n.n” ( n 表示某个数字)。第一个数字是bundle 的主要版本号,另两个是次要版本号。该字段的值会被显示在 Cocoa 应用程序的关于对话框 中。

该字段不同于 CFBundleVersion ,它指定了一个特殊的创建号。而 CFBundleShortVersionString 的值描述了一种更加正式的并且不随每一次创建而改变的版本号。

CFBundleVersion

CFBundleVersion 字段指定了一个字符串用来标识创建号。该字段的值通常随每一次创建而改变,并且会被显示在 Cocoa” 关于 ” 对话框中的扩号里。

为了指定一个发布版的 bundle 的版本信息,可以使用 CFBundleShortVersionString字段。参见 “CFBundleShortVersionString” 。

获取用户权限信息:

用来访问用户信息的 Reason strings  iOS6 中需要从用户那里得到授权的数据

//Calendars,Contacts Location,Photos,Reminders

表A-3 获取用户权限信息

字段

类型

是否必须

摘要

NSCalendarsUsageDescription

String

No

当应用第一次视图访问用户的日历的时候,会出现一个弹出框来向用户请求权限。如果你对这个键设置了一个值,那么这个值将会显示在弹出框中

NSContactsUsageDescription

String

No

应用第一次尝试访问用户的通讯录的时候,会出现一个弹出框申请权限。就像是前一个键,你对这个键指定的值,将会显示在弹出框中

NSPhotoLibraryUsageDescription

String

No

同上,照片

NSRemindersUsageDescription

String

No

同上,备忘录

NSLocationUsageDescription

String

No

同上,位置信息

应用图标:

表A-4 应用图标

字段

类型

是否必须

摘要

CFBundleIconFile

String

No

图标文件的文件名-  在  3.2 版本被废弃

UIPrerendered Icon

Boolean

No

这个键自从第一个 iOS SDK就有了,它告诉 iOS 是否给你应用的图标添加光照效果

CFBundleIconFiles

Array No

这个键的引入,是用来处理在 iPad 和 retina 屏幕的出现时,所需图标数量的增长的。这个健的值应该是一个字符串数组 - 在 5.0 版本被废弃 CFBundleExecutable

CFBundleIcons

NSDictionary

No

这个健是 iOS 5.0 增加的,可以让开发者指定 Newsstand图标和普通应用的图标

CFBundleIconFile

CFBundleIconFile 字段指定了包含该 bundle 图标的文件。您给出的文件名不需要包含 “.icns” 扩展名。 Finder 会在该 bundle 的 “Resource” 文件夹内寻找图标文件。

如果您的 bundle 使用了自定义的图标,那您就必须指定该属性。假如您没有指定,Finder (和其他应用程序)会使用缺省的图标来显示您的 bundle 。

控制应用初始化启动:

表A-5 控制应用初始化启动

字段

类型

是否必须

摘要

UILaunchImageFile

String

No

启动图片

NSMainNibFile

String

No

应用程序的主nib文件名,  如果你用 NIB 的话,这个就是一个很重要的键。它指定了当你应用启动的时候,用于创建初始化窗口和相关对象的 NIB 文件

UIMainStoryboardFile

String

No

如果你用 Storyboard 的话,这是一个很重要的键。它指定可一个 storyboard 文件,用于在应用启动的时候创建初始界面

NSMainNibFile

NSMainNibFile 字段包含了一个含有应用程序的主 nib 文件名(不包含 .nib 文件扩展名)的字符串。一个 nib 文件作为一个 Interface Builder 的存档文件,含有对用户界面的详细描述信息以及那些界面中的对象之间的关联信息。当应用程序被启动时,主 nib 文件会被自动装载。 Mac OS X 会寻找与应用程序名相匹配的 nib 文件。

用户界面:

表A-6  用户界面

字段

类型

是否必须

摘要

UISupportedInterfaceOrientations

Array

No

这个键的值是一个你应用支持的屏幕方向的数组

UIInterfaceOrientation

String

No

如果你的应用值支持一个方向,那么你应该设置这个键。它保证在你应用启动的时候,状态栏在正确的方向,而不是启动的时候在一个方向,然后又通过动画移动到另外一个方向。

UIStatusBarStyle

String

No

设置应用启动时状态栏的初始风格

UIStatusBarHidden

BOOL

No

这个键表示,在应用启动的时候,状态栏是否隐藏。

UIStatusBarTintParameters

NSDictionary

No

状态栏可以进行一些美化

UISupportedInterfaceOrientations

这个键的值是一个你应用支持的屏幕方向的数组。可用选项有:

UIInterfaceOrientationPortrait : Home 键在下方的竖屏模式

UIInterfaceOrientationPortraitUpsideDown : Home 键在上方的竖屏模式

UIInterfaceOrientationLandscapeLeft : Home 键在左方的竖屏模式

UIInterfaceOrientationLandscapeRight : Home 键在右方的竖屏模式

UIStatusBarStyle

这个键设置应用启动时状态栏的初始风格。 UIStatusBarStyle 的枚举值:

UIStatusBarStyleDefault 、 UIStatusBarStyleBlackTranslucent 、

UIStatusBarStyleBalackOpaque

UIStatusBarTintParameters

在 iOS6 中状态栏可以进行一些美化 , 在这个字典中又四个键:

Style :表示导航条的 barStyle 属性

Translucent :表示导航条的 translucent 属性

TintColor :这个指定了导航条的修饰颜色。

groundImage :如果你的导航条有背景图片,那么在这里把图片的文件名写上。

应用控制:

表A-7 应用控制

字段

类型

是否必须

摘要

UIRequiredDeviceCapabilities

Array/Dictionary

No

它能让你指定设备必须要有的特性,或者设备必须不能有的特性

UIBackgroundModes

Array

No

当你需要你的应用在后台运行时,就需要这个后台模式,数组里包含应用需要的所有后台模式

MKDirectionsApplicationSupportedModes

Array

No

这个iOS6新增加的一个键。它允许你为特定的区域和交通模式指定你的应用的路由信息

UIDeviceFamily

Number/Array

No

Xcode自动添加这个键,所以你不需要自己添加。它表示应用支持哪些设备

CFBundleGetInfoHTML

UIAppFonts

Array

No

如果你需要额外的字体。这个键可以为你的应用添加非标准的字体

UIApplicationExitsOnSuspend

Boolean

No

如果这个键设置为 true ,那么应用将会直接中断,而不是切换到后台

UIFileSharingEnabled

Boolean

No

如果你希望用户能用iTunes的文件共享功能将文件从你的应用的document目录传入或传出,那么你需要设置这个键的值为 true

UINewsstandApp

Boolean

No

如果 你的应用时Newsstand类型的,那么你应该将这个键设置为 true

UIRequiresPersistentWiFi

Boolean

No

iOS在默认情况下,如果设备30 分钟没有活动,它就会关闭WiFi连接。如果你设置这个键的值为 true ,那么这个行为会被覆盖,只要你的应用是打开的,网络连接就不会关闭

UISupportedExternalAccessoryProtocols

Array

No

这个键指定了和附加的硬件设备通讯的协议

UIBackgroundModes

当你需要你的应用在后台运行时,就需要这个后台模式 , 数组里包含应用需要的所有后台模式,可以从以下几个值里面      选择:    audio  :使用音频框架来播放或者录制音频    location  :需要在后台访问用户的位置信息    voip  :这个应用支持 IP 语音,需要在后台进行 Internet 连接和音频播放    newsstand-content  :使用 Newsstand API 在后台下载并处理内容,这允许当一个代表有新的可用发布的推送      发进来的时候唤醒应用    external-accessory  :使用 External Accessory 框架来和外部的设备惊醒通讯

bluetooth-central :使用 CoreBluetooth 框架和外部设备进行通讯

高级视图控制:

表A-8 高级视图控制

字段

类型

是否必须

摘要

UIViewEdgeAntialiasing

Boolean

No

默认情况下,你的视图被 iOS 的渲染系统绘制,不包括反锯齿功能。这是因为不是用反锯齿运行速度会快很多

UIViewGroupOpacity

Boolean

No

当你设置了视图的透明度,它所有的子视图都被渲染成同样的透明度,但会在它后面被渲染

Core OS  **** 以下为系统自动修改,无需手动修改****:

表A-9 Core OS

字段

类型

是否必须

摘要

LSRequiresIPhoneOS

Boolean

No

这个键时 iOS 应用运行在设备上面必须的,并且它的值必须时 true

CFBundlePackageType

String

No

用来标识bundle类型的四个字母长的代码(  在 iOS 中,你至处理应用,但在 Mac 中, Info.plst 还可以引用其他类型的项目

)

CFBundleInfoDictionaryVersion

String

Yes

Info.plist格式的版本信息,  Info.plst 的结构很可能会随着时间改变,那么就需要告诉操作系统,当前这个文件对应的版本是什么。

CFBundleExecutable

String

Yes

该bundle的可执行文件名,  iOS 中的应用会被打包成 .app 文件。在这个文件中包含了所有的资源,并且还有一个可执行文件。这个键时一个字符串,用来指定可执行文件的名称。

CFBundleSignature

String

Yes

用来标识创建者的四个字母长的代码,  这个键和 Mac 有关,和 iOS 没有特别的关系。

CFBundlePackageType

CFBundlePackageType 字段指定了 bundle 的类型,类似于 Mac OS 9 的文件类型代码。该字段的值包含一个四个字母长的代码。应用程序的代码是 ‘APPL’ ;框架的代码是 ‘FMWK’ ;可装载 bundle 的代码是 ‘BND’ 。如果您需要,您也可以为可装载 bundle 选择其他特殊的类型代码。

CFBundleInfoDictionaryVersion

CFBundleInfoDictionaryVersion 字段指定了属性列表结构的当前版本号。该字段的存在使得可以支持 Info.plist 格式将来的版本。在您建立一个 bundle 时, Project Builder 会自动产生该字段。

CFBundleExcutable

CFBundleExecutable 标识了 bundle 的可执行主文件的名称。对于一个应用程序来说 , 就是该应用程序的可执行文件。对于一个可加载 bundle, 它是一个可以被 bundle动态加载的二进制文件。对于一个框架,它是一个共享库。 Project Builder 会自动把该字段加入到合适项目的 Info.plist 文件中。      对于框架,考虑到启动效率的原因,可执行文件名需要和框架名同名。该可执行文件名不应该包含可用于多种平台的扩展名。

注意您必须在 bundle 的 Info.plist 文件中包含一个有效的 CFBundleExecutable 字段。即使当用户重命名应用程序或 bundle 的目录时, Mac OS X 也可以使用这个字段来定位可执行文件和共享库。

CFBundleSignature

CFBundleSignature 字段指定了 bundle 的创建者,类似于 Mac OS 9 中的文件创建者代码。该字段的值包含四字母长的代码,用来确定每一个 bundle 。

本地化:

表A-10 本地化

字段

类型

是否必须

摘要

CFBundleLocalizations

Array

No

系统通过查找你应用提供的 Iproj 目录来决定你的应用支持哪些语言地区。这个键的值是一个字符串数组,数组中的每一个值都代表支持的地区

CFBundleDevelopmentRegion

String

No

当你开发你的应用的时候,你通常会使用你本地的语言来写它。这个键的值是一个字符串,如果用户请求的区域没有

必须的资源的话,它用来表示默认的本地化区域

自定义URL和文档类型:

表A-11 自定义URL和文档类型

字段

类型

是否必须

摘要

CFBundleURLTypes

Array

No

一组描述了该bundle所支持的URL协议的字典。  这个键可以让你指定一个你的应用支持的 URL 的一个数组

CFBundleDocumentTypes

Array

No

一组描述了该bundle所支持的文档类型的字典。  这个键可以让你指定你的应用可以处理哪种类型的文档 , 这个数组中的值都是一个字典

UIImportedTypeDeclarations

Array No

为了允许你的应用打开那些不属于它的类型,你需要导入那个 UTI ,并且这个时你要用到的键

CFBundleURLTypes

CFBundleURLTypes 字段包含了一组描述了应用程序所支持的 URL 协议的字典。它的用途类似于 CFBundleDocumentTypes 的 作用,但它描述了 URL 协议而不是文档类型。每一个字典条目对应一个单独的 URL 协议, 每一个都代表你应用支持的一种 URL 规则。表 A-11-1 列出了在每一个字典条目中使用的字段。

表A-11-1 CFBundleURLTypes字典的字段

字段

类型

描述

CFBundleTypeRole String

该字段定义了那些与 URL 类型有关的应用程序的角色(即该应用程序与某种文档类型的关系)。它的值可以是 Editer , Viewer , Printer , Shell或 None 。有关这些值的详细描述可以参见 “ 文档的配置 ” 。该字段是必须的。( 当打开这个 URL 时你的应用所扮演的角色)

CFBundleURLIconFile String

该字段包含了被用于这种 URL 类型的图标文件名(不包括扩展名)字符串。( 指定对这种 URL 所使用的图标的文件名)

CFBundleURLName String

该字段包含了这种 URL 类型的抽象名称字符串。为了确保唯一性,建议您使用 Java 包方式的命名法则。这个名字作为一个字段也会在 InfoPlist.strings 文件中出现,用来提供该类型名的可读性版本。( 这应该时一个唯一的字符串,用来区分不同的URL 类型)

CFBundleURLSchemes Array

该字段包含了一组可被这种类型处理的 URL 协议。例如: http,ftp 等。( 字符串数组,每一个元素代表这个规则支持的 URL )

CFBundleDocumentTypes

CFBundleDocumentTypes 字段保存了一组字典,它包含了该应用程序所支持的文档类型。每一个字典都被称做类型定义字典,并且包含了用于定义文档类型的字段。 表 A-11- 2 列 出了类型定义字典中支持的字段。

表 A-11-2  CFBundleDocumentTypes字典的字段

字段

类型

描述

CFBundleTypeExtensions Array

该字段包含了一组映射到这个类型的文件扩展名。为了打开具有任何扩展名的文档,可以用单个星号 “*” 。该字段是必须的。

CFBundleTypeIconFile

String

图标文件的数组,该字段指定了系统显示该类文档时使用的图标文件名,该图标文件名的扩展名是可选的。如果没有扩展名,系统会根据平台指定一个(例如, Mac OS 9 中的 .icons )。

CFBundleTypeName String

该字段包含了这种文档类型的抽象名称。通过在适当的 InforPlist.strings 文件中包含该字段,可以实现对它的本地化。( 唯一的字符串,区分 URL 类型)

CFBundleTypeOSTypes Array

该字段包含了一组映射到这个类型的四字母长的类型代码。为了打开所有类型的文档,可以把它设为 “****” 。该字段是必须的。

CFBundleTypeRole String

该字段定义了那些与文档类型有关的应用程序的角色。它的值可以是 Editer , Viewer , Printer , Shell 或 None 。有关这些值的详细描述可以参见 “ 文档的配置 ”。该字段是必须的。

NSDocumentClass String

该字段描述了被用来实例化文档的 NSDocument 子类。仅供 Cocoa 应用程序使用。

NSExportableAs Array

该字段描述了一组可以输出的文档类型。仅供 Cocoa 应用程序使用。

使用iCloud:

表A-12 使用iCloud

字段

类型

是否必须

摘要

NSUbiquitousDisplaySet

String

No

iCloud 使用这个键来表示你应用的文件存储。可以把它想象成 iCloud 中的一个目录用来存放你应用中的文件

Bundle核心字段:

Mac OS X 为描述 bundle 的信息提供了一组核心字段。集成开发环境会赋予这些字段缺省值。表 A- 13 列出了这些字段。

表A-13 标准字段概要:

字段

类型

是否必须

摘要

CFBundleDevelopmentRegion

String

No

该bundle的地区。通常对应于作者的母语  。

CFBundleGetInfoHTML

String

No

用来在Finder的Get Info 面板中显示的更丰富内容的字符串  。

CFBundleGetInfoString

String

No

用来在Finder的Get Info 面板中显示的字符串  。

CFBundleHelpBookFolder

String

No

含有该bundle帮助文件的文件夹名字  。

CFBundleHelpBookName

String

No

当该bundle的帮助启动时显示的帮助文件的名字  。

CFBundleDevelopmentRegion

CFBundleDevelopmentRegion 字段指定了一个字符串值来标识 bundle 的地区。通常对应于作者的母语。如果不能找到用户首选的地区或语言的资源,系统最后会使用该值。

CFBundleGetInfoHTML

CFBundleGetInfoHTML 字段含有会在 bundle 的信息窗口中显示的 HTML 字符串。如果您希望在信息窗口中有更强的表现力,可以使用这 个键值对来替代纯文本的 CFBundleGetInfoString 。通过把它加入到合适的 .lproj 目录中的 InfoPlist.strings 文件 中,您也可以本地化该字符串。

如果 CFBundleGetInfoString 和 CFBundleGetInfoHTML 同时存在的话,系统会选择使用 CFBundleGetInfoHTML 。

CFBundleGetInfoString

CFBundleGetInfoString 字段含有会在 bundle 的信息窗口中显示的纯文本字符串(这里的字符串也就是 Mac OS 9 中的长字符串)。该字段的格式应该遵照 Mac OS 9中的长字符串,例如: “ 2.2.1 , ? Great Software, Inc, 1999 ” 。通过把它加入到合适的 .lproj 目录中的 InfoPlist.strings 文件中,您也可以本地化该字符串。

如果存在 CFBundleGetInfoHTML 的话,系统不会选择使用该字段。

CFBundleHelpBookFolder

CFBundleHelpBookFolder 字段含有该 bundle 的帮助文件的文件夹名字。帮助通常被本地化成一种指定的语言,所以该字段指向的文件夹应该是所选择语言的 .lproj 目录中的文件夹。

CFBundleHelpBookName

CFBundleHelpBookName 指定了您的应用程序的帮助主页。该字段指定的帮助页面名可以和 HTML 文件名不同。在帮助文件 META 标签的 CONTENT 属性中指定了帮助页面名。

应用程序特定的字段:

表A-14 应用程序特定的字段:

字段

类型

是否必须

摘要

CFAppleHelpAnchor String No 该bundle的初始HTML帮助文件。

NSAppleScriptEnabled String No 指定是否支持AppleScript。

NSHumanReadableCopyright String Yes 显示在对话框中的版权信息。

NSJavaNeeded Boolean or String No 指定该程序是否需要一个Java虚拟机。

NSJavaPath Array No 一组Java类所在的路径(前面需要加上NSJavaRoot)。

NSJavaRoot String No 包含Java类的根目录。

NSMainNibFile** String Yes

应用程序的主nib文件名。

NSPrincipalClass String Yes bundle的主类的名字。

NSServices Array No 一组描述了由应用程序所提供的服务的字典。

CFAppleHelpAnchor

CFAppleHelpAnchor 字段定义了 bundle 的初始 HTML 帮助文件名,不需要包括 .html 或 .htm 扩展名。这个文件位于 bundle 的本地化资源目录中,或者如果没有本地化资源目录的话,则直接被放在 Resources 目录中。

NSAppleScriptEnabled

NSAppleScriptEnabled 字段说明了该应用程序是否支持 AppleScript 。如果您的应用程序支持,就需要把该字符串的值设为 “Yes” 。

NSHumanReadableCopyright

NSHumanReadableCopyright 字段包含了一个含有 bundle 的版权信息的字符串。您可以在 “ 关于 ” 对话框中显示它。该字段通常会出现在 InfoPlist.strings 文件中,因为往往需要本地化该字段的值。

NSJavaNeeded

NSJavaNeeded 字段含有一个布尔值,用来确定在执行该 bundle 的代码之前 Java虚拟机是否需要被载入并运行。您也可以指定一个字符串类型的值 “ YES ” 代替布尔型的值。

NSJavaPath

NSJavaPath 字段包含了一组路径。每一个路径指向一个 Java 类。该路径相对于由NSJavaRoot 字段定义的位置来说,可能是一个绝对路径也可能是一个相对路径。开发环境会自动把这些值保存在数组中。

NSJavaRoot

NSJavaRoot 字段含有一个指向一个目录的字符串。该目录是应用程序的 Java 类文件的根目录

NSPrincipalClass

NSPrincipalClass 字段定义了一个 bundle 的主类的名称。对于应用程序来说,缺省情况下这个名字就是应用程序的名字。

NSServices

NSServices包含了一组字典,它详细说明了应用程序所提供的服务。表A-5列出了用来指定服务的字段。

表 A-14-1 NSServices字典的字段:

字段

类型

描述

NSPortName String 该字段指定了由您的应用程序监听器为接受外部服务请求所提供的端口名称。

NSMessage String 该字段指定了用来调用该服务的实例方法名。在Objective-C中,实例方法的形式是messageName:userData:error:。在Java中,实例方法的形式是messageName(NSPasteBoard.String)。

NSSendTypes Array 该字段指定了一组可以被该服务读取的数据类型名。NSPasteboard类列出了几个常用的数据类型。您必须包含此字段,NSReturnTypes,或者两者。

NSReturnTypes Array 该字段指定了一组可以被该服务返回的数据类型名。NSPasteboard类列出了几个常用的数据类型。您必须包含此字段,NSSendTypes,或者两者。

NSMenuItem Dictionary 该 字段包含一个字典,它指定了加入Services菜单中的文本。字典中的唯一一个字段被称为default并且它的值是菜单项的文本。该值必须是唯一的。 您可以使用斜杠“/”来指定一个子菜单。例如,Mail/Send出现在Services菜单中时就是一个带有Send子菜单并且名为Mail的菜单。

NSKeyEquivalent Dictionary 该字段是可选的,并且包含一个含有用来请求服务菜单命令的快捷按键的字典。与NSMenuItem类似,字典中的唯一一个字段被称为default并且它的值是单个的字符。用户可以通过按下Command,Shift功能键和相应的字符来请求该快捷按键。

NSUserData String 该字段是一个可选字符串,它含有您的选择值。

NSTimeout String 该字段是一个可选的数字字符串,它指定了从应用程序 请求服务到收到它的响应所需要等待的毫秒数。

启动服务字段:

启动服务字段规定了 Mac OS X 中的应用程序是怎样被启动的。这些字段适用于 CFM 和 Mach-O 可执行文件。有关 CFM 和 Mach-O 可执  行文件的详情可参见 “ 安装和集成 ” 一章中的 “CFM 可执行文件 ” 。表 A- 6 列出了启动服务的字 段。

表A-15  启动服务字段:

字段

类型

是否必须

摘要

LSBackgroundOnly String No 指定了应用程序是否仅仅运行在后台。(仅适用于Mach-O的应用程序)。

LSPrefersCarbon String No 指定了应用程序是否优先运行在Carbon环境中。

LSPrefersClassic String No 指定了应用程序是否优先运行在Classic环境中。

LSRequiresCarbon String No 指定了应用程序是否必须运行在一个Carbon环境中。

LSRequiresClassic String No 指定了应用程序是否必须运行在一个Classic环境中。

LSUIElement String No 指定了应用程序是否是一个用户界面组件,即一个应用程序不应该出现在Dock中或强制退出窗口。

LSBackgroundOnly

如果该字段存在并且被设为 “ 1 ” ,启动服务将只会运行在后台。您可以使用该字段来创建无用户界面的后台应用程序。如果您的应用程序使用了连接到窗口服务器 的高级框架,但并不需要显示出来,您也应该使用该字段。后台应用程序必须被编译成 Mach-O 可执行文件。该选项不适用于 CFM 应用程序。

您也可以指定该字段的类型为 Boolean 或 Number 。然而,只有 Mac OS X 10.2 或以上的版本才支持这些类型的值。

LSPrefersCarbon

如果该字段被设为 “ 1 ” , Finder 将会在显示简介面板中显示 “ 在 Classic 环境中打开 ” 控制选项,缺省情况下该控件未被选中。如果需要,用户可以修改这个控制选项来在 Classic 环境中启动应用程序。

您也可以指定该字段的类型为 Boolean 或 Number 。然而,只有 Mac OS X 10.2 或以上的版本才支持这些类型的值。如果您在您的属性列表中加入了该字段,那么就不要同时加入 LSPrefersClassic, LSRequiresCarbon, 或 LSRequiresClassic 字段 。

LSPrefersClassic

如果该字段被设为 “ 1 ” , Finder 将会在显示简介面板中显示 “ 在 Classic 环境中打开 ” 控制选项,缺省情况下该控件被选中。如果需要,用户可以修改这个控制选项来在 Carbon 环境中启动应用程序。

您也可以指定该字段的类型为 Boolean 或 Number 。然而,只有 Mac OS X 10.2 或以上的版本才支持这些类型的值。如果您在您的属性列表中加入了该字段,那么就不要同时加入 LSPrefersCarbon, LSRequiresCarbon, 或 LSRequiresClassic 字段。

LSRequiresCarbon

如果该字段被设为 “ 1 ” ,启动服务将只在 Carbon 环境中运行应用程序。如果您的应用程序不应该运行在 Classic 环境中的话,可以使用该字段。

您也可以指定该字段的类型为 Boolean 或 Number 。然而,只有 Mac OS X 10.2 或以上的版本才支持这些类型的值。如果您在您的属性列表中加入了该字段,那么就不要同时加入 LSPrefersCarbon, LSPrefersClassic, 或 LSRequiresClassic 字段。

LSRequiresClassic

如果该字段被设为 “ 1 ” ,启动服务将只在 Classic 环境中运行应用程序。如果您的应用程序不应该运行在 Carbon 兼容环境中的话,可以使用该字段。

您也可以指定该字段的类型为 Boolean 或 Number 。然而,只有 Mac OS X 10.2 或以上的版本才支持这些类型的值。如果您在您的属性列表中加入了该字段,那么就不要同时加入 LSPrefersCarbon, LSPrefersClassic, 或 LSRequiresCarbon 字段。

LSUIElement

如果该字段被设为 “ 1 ” ,启动服务会将该应用程序作为一个用户界面组件来运行。用户界面组件不会出现在 Dock 或强制退出窗口中。虽然它们通常作为后台应 用程序运行,但是如果希望的话,它们也可以在前台显示一个用户界面。点击属于用户界面组件的窗口,应用程序将会处理产生的事件。

Dock 和登录窗口是两个用户界面组件应用程序。

应用程序包字段:

应用程序打包的目的是把一个应用程序打包成一个自我包含的实体,并且对用户隐藏了它的内容。然而,用户常常希望操作应用程序的某些文件。例如,用户可能希 望添加或删除某个插件,本地化资源,等等。开发者可以在 Info.plist 文件中指定一些可以由用户维护的项目。那么 Finder 会把这些项目显示在 bundle 的信息面板中,并允许用户浏览,删除或添加这些项目。

CFBundleInstallerInfo

应用程序打包信息的根字段是CFBundleInstallerInfo。该字段定义了一个字典,它包含了表A-7中所列出的字段。“是否必须”列指出了哪些是您必须支持的功能。

表A-16-1 应用程序打包字段:

字段

类型

是否必须

摘要

APInstallerURL String Yes 一个指向您希望安装的文件的URL路径。

APFiles Array Yes 一组字典,描述了那些可以被安装的文件或目录。

APInstallerURL

APInstallerURL 字段指定了一个指向您希望安装的文件的路径。您必须以 file://localhost/path/ 形式来说明这个路径。所有被安装的文件必须位于这个文件夹中。

APFiles

APFiles 字段指定了一个字典,描述了您希望安装的文件。每个字典条目可以包含某个文件或目录的描述。您可以让 APFiles 字段包含在其自身中,用于指定在  目录内部的文件。表 A- 8 列出了 用来指定有关单个文件或目录的信息。

表A-16-2  APFiles字典字段:

字段

类型

描述

APFileDescriptionKey String 用来显示在Finder的信息窗口中的简短描述。

APDisplayedAsContainer String 如果值为“Yes”,该项目作为一个目录图标显示在信息面板中;否则,它被显示为一个文档图标。

APFileDestinationPath String 一个安装组件的相对路径。

APFileName String 文件或目录的名称。

APFileSourcePath String 指向应用程序包中组件的路径,相对与APInstallerURL路径。

APInstallAction String 操纵组件的动作:“Copy”或者“Open”

UIFileSharingEnabled  应用程序支持itunes共享文件夹  值为 boolean 值  YES 共享;  NO 不共享

这个字段在字段编辑器中的名称为: Application supports iTunes file sharing

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容