iOS开发 Xcode中的Info.plist字段含义

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

 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 OS9中的长字符串)。该字段的格式应该遵照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

 

整理自:http://www.cnblogs.com/adamleung/p/3494651.html
            http://blog.csdn.net/swj6125/article/details/9791109 

转载请标明出处,谢谢!!!  

相关文章
|
11天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
3天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
4天前
|
存储 前端开发 Swift
探索iOS开发:从新手到专家的旅程
本文将带您领略iOS开发的奇妙之旅,从基础概念的理解到高级技巧的掌握,逐步深入iOS的世界。文章不仅分享技术知识,还鼓励读者在编程之路上保持好奇心和创新精神,实现个人成长与技术突破。
|
19天前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
39 9
|
15天前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!
|
19天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
17天前
|
iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第39天】在苹果的生态系统中,SwiftUI框架以其声明式语法和易用性成为开发者的新宠。本文将深入SwiftUI的核心概念,通过实际案例展示如何利用这一框架快速构建用户界面,并探讨其对iOS应用开发流程的影响。
|
20天前
|
JSON 前端开发 API
探索iOS开发之旅:打造你的第一个天气应用
【10月更文挑战第36天】在这篇文章中,我们将踏上一段激动人心的旅程,一起构建属于我们自己的iOS天气应用。通过这个实战项目,你将学习到如何从零开始搭建一个iOS应用,掌握基本的用户界面设计、网络请求处理以及数据解析等核心技能。无论你是编程新手还是希望扩展你的iOS开发技能,这个项目都将为你提供宝贵的实践经验。准备好了吗?让我们开始吧!
|
23天前
|
存储 数据可视化 Swift
探索iOS开发之旅:从新手到专家
【10月更文挑战第33天】在这篇文章中,我们将一起踏上一场激动人心的iOS开发之旅。无论你是刚刚入门的新手,还是已经有一定经验的开发者,这篇文章都将为你提供宝贵的知识和技能。我们将从基础的iOS开发概念开始,逐步深入到更复杂的主题,如用户界面设计、数据存储和网络编程等。通过阅读这篇文章,你将获得成为一名优秀iOS开发者所需的全面技能和知识。让我们一起开始吧!
|
24天前
|
移动开发 Java Android开发
探索Android与iOS开发的差异性与互联性
【10月更文挑战第32天】在移动开发的大潮中,Android和iOS两大平台各领风骚。本文将深入浅出地探讨这两个平台的开发差异,并通过实际代码示例,展示如何在各自平台上实现相似的功能。我们将从开发环境、编程语言、用户界面设计、性能优化等多个角度进行对比分析,旨在为开发者提供跨平台开发的实用指南。
38 0