溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Xcode中Info.plist字段詳解

發(fā)布時間:2020-09-02 15:29:41 來源:腳本之家 閱讀:542 作者:laozhang 欄目:移動開發(fā)

Info.plist用于向iOS提供關(guān)于app,bundle或者framework的一些重要信息。它指定了比如一個應(yīng)用應(yīng)該怎樣啟動,它如何被本地化,應(yīng)用的名稱,要顯示的圖標(biāo),還有更多。Info.plist文件實(shí)際上是蘋果預(yù)定義schema的XML文件。

為了構(gòu)建一個設(shè)備相關(guān)的健,你在健的后面要加上~iphone或者~ipad。

常用字段:

1.獲取版本信息:

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

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

2.應(yīng)用支持http網(wǎng)絡(luò)請求:

在Info.plist中添加 NSAppTransportSecurity 類型 Dictionary 。
在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 類型Boolean ,值設(shè)為 YES

注意類型NSAppTransportSecurity為Dictionary,NSAllowsArbitraryLoads為Boolean,復(fù)制粘貼的時候,不要多了空格,segment fault 頁面上直接復(fù)制,經(jīng)常會多一個出空格!

控制應(yīng)用的名稱:

表A-1 控制應(yīng)用的名稱

字段

類型

是否必須

摘要

CFBundleName

String

Yes

bundle的簡稱, 這個健指定了你的應(yīng)用的名稱

CFBundleDisplayName String

No

本地化的bundle名, 本地化,可以通過InfoPlist.strings文件來為每個語言指定一個合適的值

CFBundleDisplayName

CFBundleDisplayName字段指定了一個字符串值來標(biāo)識bundle的顯示名稱。Finder和其他用戶界面組件會把它顯示給用戶。這個名 稱可以與文件系統(tǒng)中的bundle名不同。通過把字段加入適當(dāng)?shù)?lproj子目錄中的InfoPlist.strings文件,就可以實(shí)現(xiàn)該字段的本地 化。如果您需要本地化這個字段,您還應(yīng)該提供一個CFBundleName字段的本地化版本。

CFBundleName

CFBundleName指定了該bundle的簡稱。簡稱應(yīng)該小于16個字符并且適合在菜單和“關(guān)于”中顯示。通過把它加入到適當(dāng)?shù)?lproj子文件 夾下的InfoPlist.strings文件中,該字段可以被本地化。如果您本地化了該字段,那您也應(yīng)該提供一個 CFBundleDisplayName字段的本地化版本。

應(yīng)用標(biāo)識+應(yīng)用版本:

表A-2應(yīng)用標(biāo)識+應(yīng)用版本

字段

類型

是否必須

摘要

CFBundleIdentifier

String

YES

該bundle的唯一標(biāo)識字符串。該字符串的格式類似java包的命名方式,例如:com.apple.myapp。

CFBundleShortVersionString

String

YES

這個值是一個字符串,用來指定你在APP Store上面看的的版本號,這個值必須在每一次App Store發(fā)布版本中遞增

CFBundleVersion

String

YES

可執(zhí)行文件的創(chuàng)建號,  這個健的值是一個證書,你可以在每一次發(fā)布時增加它。

CFBundleIdentifier

CFBundleIdentifier字段指定了bundle的一個唯一的標(biāo)識字符串。該標(biāo)識符采用了類似Java包的命名方式,例如com.apple.myapp。該bundle標(biāo)識符可以在運(yùn)行時定位bundle。預(yù)置系統(tǒng)使用這個字符串來唯一地標(biāo)識每個應(yīng)用程序。

它包含一個唯一標(biāo)識的字符串,它是從你在iOS Provisioning Portal創(chuàng)建的App ID取得的 App ID包含兩個部分:Team ID和Bundle ID

CFBundleShortVersionString

CFBundleShortVersionString字段指定了bundle的版本號。一般包含該bundle的主、次版本號。這個字符串的格式通常是 “n.n.n”(n表示某個數(shù)字)。第一個數(shù)字是bundle的主要版本號,另兩個是次要版本號。該字段的值會被顯示在Cocoa應(yīng)用程序的關(guān)于對話框 中。

該字段不同于CFBundleVersion,它指定了一個特殊的創(chuàng)建號。而CFBundleShortVersionString的值描述了一種更加正式的并且不隨每一次創(chuàng)建而改變的版本號。

CFBundleVersion

CFBundleVersion字段指定了一個字符串用來標(biāo)識創(chuàng)建號。該字段的值通常隨每一次創(chuàng)建而改變,并且會被顯示在Cocoa”關(guān)于”對話框中的擴(kuò)號里。

為了指定一個發(fā)布版的bundle的版本信息,可以使用CFBundleShortVersionString字段。參見“CFBundleShortVersionString”。

獲取用戶權(quán)限信息:

用來訪問用戶信息的Reason strings iOS6中需要從用戶那里得到授權(quán)的數(shù)據(jù)

//Calendars,Contacts Location,Photos,Reminders

表A-3 獲取用戶權(quán)限信息

字段

類型

是否必須

摘要

NSCalendarsUsageDescription

String

No

當(dāng)應(yīng)用第一次視圖訪問用戶的日歷的時候,會出現(xiàn)一個彈出框來向用戶請求權(quán)限。如果你對這個鍵設(shè)置了一個值,那么這個值將會顯示在彈出框中

NSContactsUsageDescription

String

No

應(yīng)用第一次嘗試訪問用戶的通訊錄的時候,會出現(xiàn)一個彈出框申請權(quán)限。就像是前一個鍵,你對這個鍵指定的值,將會顯示在彈出框中

NSPhotoLibraryUsageDescription

String

No

同上,照片

NSRemindersUsageDescription

String

No

同上,備忘錄

NSLocationUsageDescription

String

No

同上,位置信息

應(yīng)用圖標(biāo):

表A-4 應(yīng)用圖標(biāo)

字段

類型

是否必須

摘要

CFBundleIconFile

String

No

圖標(biāo)文件的文件名- 在3.2版本被廢棄

UIPrerendered Icon

Boolean

No

這個鍵自從第一個iOS SDK就有了,它告訴iOS是否給你應(yīng)用的圖標(biāo)添加光照效果

CFBundleIconFiles

 Array No

這個鍵的引入,是用來處理在iPad和retina屏幕的出現(xiàn)時,所需圖標(biāo)數(shù)量的增長的。這個健的值應(yīng)該是一個字符串?dāng)?shù)組 -在5.0版本被廢棄CFBundleExecutable

CFBundleIcons

NSDictionary

No

這個健是iOS 5.0增加的,可以讓開發(fā)者指定Newsstand圖標(biāo)和普通應(yīng)用的圖標(biāo)

CFBundleIconFile

CFBundleIconFile字段指定了包含該bundle圖標(biāo)的文件。您給出的文件名不需要包含“.icns”擴(kuò)展名。Finder會在該bundle的“Resource”文件夾內(nèi)尋找圖標(biāo)文件。

如果您的bundle使用了自定義的圖標(biāo),那您就必須指定該屬性。假如您沒有指定,F(xiàn)inder(和其他應(yīng)用程序)會使用缺省的圖標(biāo)來顯示您的bundle。

控制應(yīng)用初始化啟動:

表A-5 控制應(yīng)用初始化啟動

字段

類型

是否必須

摘要

UILaunchImageFile

String

No

啟動圖片

NSMainNibFile

String

No

應(yīng)用程序的主nib文件名, 如果你用NIB的話,這個就是一個很重要的鍵。它指定了當(dāng)你應(yīng)用啟動的時候,用于創(chuàng)建初始化窗口和相關(guān)對象的NIB文件

UIMainStoryboardFile

String

No

如果你用Storyboard的話,這是一個很重要的鍵。它指定可一個storyboard文件,用于在應(yīng)用啟動的時候創(chuàng)建初始界面

NSMainNibFile

NSMainNibFile字段包含了一個含有應(yīng)用程序的主nib文件名(不包含.nib文件擴(kuò)展名)的字符串。一個nib文件作為一個 Interface Builder的存檔文件,含有對用戶界面的詳細(xì)描述信息以及那些界面中的對象之間的關(guān)聯(lián)信息。當(dāng)應(yīng)用程序被啟動時,主nib文件會被自動裝載。Mac OS X會尋找與應(yīng)用程序名相匹配的nib文件。

用戶界面:

表A-6 用戶界面

字段

類型

是否必須

摘要

UISupportedInterfaceOrientations

Array

No

這個鍵的值是一個你應(yīng)用支持的屏幕方向的數(shù)組

UIInterfaceOrientation

String

No

如果你的應(yīng)用值支持一個方向,那么你應(yīng)該設(shè)置這個鍵。它保證在你應(yīng)用啟動的時候,狀態(tài)欄在正確的方向,而不是啟動的時候在一個方向,然后又通過動畫移動到另外一個方向。

UIStatusBarStyle

 

String

No

設(shè)置應(yīng)用啟動時狀態(tài)欄的初始風(fēng)格

UIStatusBarHidden

 

BOOL

 

No

這個鍵表示,在應(yīng)用啟動的時候,狀態(tài)欄是否隱藏。

UIStatusBarTintParameters

 

NSDictionary

 

No

狀態(tài)欄可以進(jìn)行一些美化

UISupportedInterfaceOrientations

這個鍵的值是一個你應(yīng)用支持的屏幕方向的數(shù)組??捎眠x項(xiàng)有:

UIInterfaceOrientationPortrait:Home鍵在下方的豎屏模式

UIInterfaceOrientationPortraitUpsideDown:Home鍵在上方的豎屏模式

UIInterfaceOrientationLandscapeLeft:Home鍵在左方的豎屏模式

UIInterfaceOrientationLandscapeRight:Home鍵在右方的豎屏模式

UIStatusBarStyle

這個鍵設(shè)置應(yīng)用啟動時狀態(tài)欄的初始風(fēng)格。UIStatusBarStyle的枚舉值:

UIStatusBarStyleDefault、UIStatusBarStyleBlackTranslucent、

UIStatusBarStyleBalackOpaque

UIStatusBarTintParameters

在iOS6中狀態(tài)欄可以進(jìn)行一些美化,在這個字典中又四個鍵:

Style:表示導(dǎo)航條的barStyle屬性

Translucent:表示導(dǎo)航條的translucent屬性

TintColor:這個指定了導(dǎo)航條的修飾顏色。

groundImage:如果你的導(dǎo)航條有背景圖片,那么在這里把圖片的文件名寫上。

應(yīng)用控制:

表A-7 應(yīng)用控制

字段

類型

是否必須

摘要

UIRequiredDeviceCapabilities

Array/Dictionary

No

    它能讓你指定設(shè)備必須要有的特性,或者設(shè)備必須不能有的特性

UIBackgroundModes

Array

No

當(dāng)你需要你的應(yīng)用在后臺運(yùn)行時,就需要這個后臺模式,數(shù)組里包含應(yīng)用需要的所有后臺模式

MKDirectionsApplicationSupportedModes

Array

No

 這個iOS6新增加的一個鍵。它允許你為特定的區(qū)域和交通模式指定你的應(yīng)用的路由信息

UIDeviceFamily

Number/Array

No

 Xcode自動添加這個鍵,所以你不需要自己添加。它表示應(yīng)用支持哪些設(shè)備

CFBundleGetInfoHTML

UIAppFonts

Array

No

 如果你需要額外的字體。這個鍵可以為你的應(yīng)用添加非標(biāo)準(zhǔn)的字體

UIApplicationExitsOnSuspend

Boolean

No

 如果這個鍵設(shè)置為true,那么應(yīng)用將會直接中斷,而不是切換到后臺

UIFileSharingEnabled

Boolean

No

如果你希望用戶能用iTunes的文件共享功能將文件從你的應(yīng)用的document目錄傳入或傳出,那么你需要設(shè)置這個鍵的值為true

UINewsstandApp

Boolean

No

如果 你的應(yīng)用時Newsstand類型的,那么你應(yīng)該將這個鍵設(shè)置為true

UIRequiresPersistentWiFi

Boolean

No

iOS在默認(rèn)情況下,如果設(shè)備30分鐘沒有活動,它就會關(guān)閉WiFi連接。如果你設(shè)置這個鍵的值為true,那么這個行為會被覆蓋,只要你的應(yīng)用是打開的,網(wǎng)絡(luò)連接就不會關(guān)閉

UISupportedExternalAccessoryProtocols

Array

No

這個鍵指定了和附加的硬件設(shè)備通訊的協(xié)議

UIBackgroundModes

當(dāng)你需要你的應(yīng)用在后臺運(yùn)行時,就需要這個后臺模式,數(shù)組里包含應(yīng)用需要的所有后臺模式,可以從以下幾個值里面
選擇:

audio:使用音頻框架來播放或者錄制音頻

location:需要在后臺訪問用戶的位置信息

voip:這個應(yīng)用支持IP語音,需要在后臺進(jìn)行Internet連接和音頻播放

newsstand-content:使用Newsstand API在后臺下載并處理內(nèi)容,這允許當(dāng)一個代表有新的可用發(fā)布的推送發(fā)進(jìn)來的時候喚醒應(yīng)用external-accessory:使用External Accessory框架來和外部的設(shè)備驚醒通訊

bluetooth-central:使用CoreBluetooth框架和外部設(shè)備進(jìn)行通訊

高級視圖控制:

表A-8 高級視圖控制

字段

類型

是否必須

摘要

UIViewEdgeAntialiasing

Boolean

No

默認(rèn)情況下,你的視圖被iOS的渲染系統(tǒng)繪制,不包括反鋸齒功能。這是因?yàn)椴皇怯梅翠忼X運(yùn)行速度會快很多

UIViewGroupOpacity

Boolean

No

當(dāng)你設(shè)置了視圖的透明度,它所有的子視圖都被渲染成同樣的透明度,但會在它后面被渲染

Core OS **** 以下為系統(tǒng)自動修改,無需手動修改****:

表A-9 Core OS

字段

類型

是否必須

摘要

LSRequiresIPhoneOS

Boolean

No

這個鍵時iOS應(yīng)用運(yùn)行在設(shè)備上面必須的,并且它的值必須時true

CFBundlePackageType

String

No

用來標(biāo)識bundle類型的四個字母長的代碼( 在iOS中,你至處理應(yīng)用,但在Mac中,Info.plst還可以引用其他類型的項(xiàng)目

)

CFBundleInfoDictionaryVersion

String

Yes

Info.plist格式的版本信息,     Info.plst的結(jié)構(gòu)很可能會隨著時間改變,那么就需要告訴操作系統(tǒng),當(dāng)前這個文件對應(yīng)的版本是什么。

CFBundleExecutable

String

Yes

該bundle的可執(zhí)行文件名,     iOS中的應(yīng)用會被打包成.app文件。在這個文件中包含了所有的資源,并且還有一個可執(zhí)行文件。這個鍵時一個字符串,用來指定可執(zhí)行文件的名稱。

CFBundleSignature

String

Yes

用來標(biāo)識創(chuàng)建者的四個字母長的代碼, 這個鍵和Mac有關(guān),和iOS沒有特別的關(guān)系。

CFBundlePackageType

CFBundlePackageType字段指定了bundle的類型,類似于Mac OS 9的文件類型代碼。該字段的值包含一個四個字母長的代碼。應(yīng)用程序的代碼是‘APPL';框架的代碼是‘FMWK';可裝載bundle的代碼是 ‘BND'。如果您需要,您也可以為可裝載bundle選擇其他特殊的類型代碼。

CFBundleInfoDictionaryVersion

CFBundleInfoDictionaryVersion字段指定了屬性列表結(jié)構(gòu)的當(dāng)前版本號。該字段的存在使得可以支持Info.plist格式將來的版本。在您建立一個bundle時,Project Builder會自動產(chǎn)生該字段。

CFBundleExcutable

CFBundleExecutable 標(biāo)識了bundle的可執(zhí)行主文件的名稱。對于一個應(yīng)用程序來說,就是該應(yīng)用程序的可執(zhí)行文件。對于一個可加載bundle,它是一個可以被bundle 動態(tài)加載的二進(jìn)制文件。對于一個框架,它是一個共享庫。Project Builder會自動把該字段加入到合適項(xiàng)目的Info.plist文件中。

對于框架,考慮到啟動效率的原因,可執(zhí)行文件名需要和框架名同名。該可執(zhí)行文件名不應(yīng)該包含可用于多種平臺的擴(kuò)展名。

注意您必須在bundle的Info.plist文件中包含一個有效的CFBundleExecutable字段。即使當(dāng)用戶重命名應(yīng)用程序或bundle的目錄時,Mac OS X也可以使用這個字段來定位可執(zhí)行文件和共享庫。

CFBundleSignature

CFBundleSignature字段指定了bundle的創(chuàng)建者,類似于Mac OS 9中的文件創(chuàng)建者代碼。該字段的值包含四字母長的代碼,用來確定每一個bundle。

本地化:

表A-10 本地化

字段

類型

是否必須

摘要

CFBundleLocalizations

Array

No

 系統(tǒng)通過查找你應(yīng)用提供的Iproj目錄來決定你的應(yīng)用支持哪些語言地區(qū)。這個鍵的值是一個字符串?dāng)?shù)組,數(shù)組中的每一個值都代表支持的地區(qū)

CFBundleDevelopmentRegion

String

No

當(dāng)你開發(fā)你的應(yīng)用的時候,你通常會使用你本地的語言來寫它。這個鍵的值是一個字符串,如果用戶請求的區(qū)域沒有

必須的資源的話,它用來表示默認(rèn)的本地化區(qū)域

自定義URL和文檔類型:

表A-11 自定義URL和文檔類型

字段

類型

是否必須

摘要

CFBundleURLTypes

Array

No

一組描述了該bundle所支持的URL協(xié)議的字典。這個鍵可以讓你指定一個你的應(yīng)用支持的URL的一個數(shù)組

CFBundleDocumentTypes

Array

No

一組描述了該bundle所支持的文檔類型的字典。這個鍵可以讓你指定你的應(yīng)用可以處理哪種類型的文檔,這個數(shù)組中的值都是一個字典

UIImportedTypeDeclarations

 Array No

為了允許你的應(yīng)用打開那些不屬于它的類型,你需要導(dǎo)入那個UTI,并且這個時你要用到的鍵

CFBundleURLTypes

CFBundleURLTypes字段包含了一組描述了應(yīng)用程序所支持的URL協(xié)議的字典。它的用途類似于CFBundleDocumentTypes的 作用,但它描述了URL協(xié)議而不是文檔類型。每一個字典條目對應(yīng)一個單獨(dú)的URL協(xié)議, 每一個都代表你應(yīng)用支持的一種URL規(guī)則。表A-11-1列出了在每一個字典條目中使用的字段。

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

字段

類型

描述

CFBundleTypeRole String

該字段定義了那些與URL類型有關(guān)的應(yīng)用程序的角色(即該應(yīng)用程序與某種文檔類型的關(guān)系)。它的值可以是Editer,Viewer,Printer,Shell或None。有關(guān)這些值的詳細(xì)描述可以參見“ 文檔的配置”。該字段是必須的。( 當(dāng)打開這個URL時你的應(yīng)用所扮演的角色)

CFBundleURLIconFile String

該字段包含了被用于這種URL類型的圖標(biāo)文件名(不包括擴(kuò)展名)字符串。( 指定對這種URL所使用的圖標(biāo)的文件名)

CFBundleURLName String

該字段包含了這種URL類型的抽象名稱字符串。為了確保唯一性,建議您使用Java包方式的命名法則。這個名字作為一個字段也會在InfoPlist.strings文件中出現(xiàn),用來提供該類型名的可讀性版本。( 這應(yīng)該時一個唯一的字符串,用來區(qū)分不同的URL類型)

CFBundleURLSchemes Array

該字段包含了一組可被這種類型處理的URL協(xié)議。例如:http,ftp等。( 字符串?dāng)?shù)組,每一個元素代表這個規(guī)則支持的URL)

CFBundleDocumentTypes

CFBundleDocumentTypes字段保存了一組字典,它包含了該應(yīng)用程序所支持的文檔類型。每一個字典都被稱做類型定義字典,并且包含了用于定義文檔類型的字段。表A-11-2列出了類型定義字典中支持的字段。

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

字段

類型

描述

CFBundleTypeExtensions Array

該字段包含了一組映射到這個類型的文件擴(kuò)展名。為了打開具有任何擴(kuò)展名的文檔,可以用單個星號“*”。該字段是必須的。

CFBundleTypeIconFile

String

  圖標(biāo)文件的數(shù)組,該字段指定了系統(tǒng)顯示該類文檔時使用的圖標(biāo)文件名,該圖標(biāo)文件名的擴(kuò)展名是可選的。如果沒有擴(kuò)展名,系統(tǒng)會根據(jù)平臺指定一個(例如,Mac OS 9中的.icons)。

CFBundleTypeName String

該字段包含了這種文檔類型的抽象名稱。通過在適當(dāng)?shù)腎nforPlist.strings文件中包含該字段,可以實(shí)現(xiàn)對它的本地化。( 唯一的字符串,區(qū)分URL類型)

CFBundleTypeOSTypes Array

該字段包含了一組映射到這個類型的四字母長的類型代碼。為了打開所有類型的文檔,可以把它設(shè)為“****”。該字段是必須的。

CFBundleTypeRole String

該字段定義了那些與文檔類型有關(guān)的應(yīng)用程序的角色。它的值可以是Editer,Viewer,Printer,Shell或None。有關(guān)這些值的詳細(xì)描述可以參見“ 文檔的配置”。該字段是必須的。

NSDocumentClass String

該字段描述了被用來實(shí)例化文檔的NSDocument子類。僅供Cocoa應(yīng)用程序使用。

NSExportableAs Array

該字段描述了一組可以輸出的文檔類型。僅供Cocoa應(yīng)用程序使用。

使用iCloud:

表A-12 使用iCloud

字段

類型

是否必須

摘要

NSUbiquitousDisplaySet

String

No

iCloud使用這個鍵來表示你應(yīng)用的文件存儲??梢园阉胂蟪蒳Cloud中的一個目錄用來存放你應(yīng)用中的文件

Bundle核心字段:

Mac OS X 為描述bundle的信息提供了一組核心字段。集成開發(fā)環(huán)境會賦予這些字段缺省值。表A-13列出了這些字段。

表A-13 標(biāo)準(zhǔn)字段概要:

字段

類型

是否必須

摘要

CFBundleDevelopmentRegion

String

No

 該bundle的地區(qū)。通常對應(yīng)于作者的母語。

CFBundleGetInfoHTML

String

No

用來在Finder的Get Info 面板中顯示的更豐富內(nèi)容的字符串。

CFBundleGetInfoString

String

No

用來在Finder的Get Info 面板中顯示的字符串。

CFBundleHelpBookFolder

String

No

含有該bundle幫助文件的文件夾名字。

CFBundleHelpBookName

String

No

當(dāng)該bundle的幫助啟動時顯示的幫助文件的名字。

CFBundleDevelopmentRegion

CFBundleDevelopmentRegion字段指定了一個字符串值來標(biāo)識bundle的地區(qū)。通常對應(yīng)于作者的母語。如果不能找到用戶首選的地區(qū)或語言的資源,系統(tǒng)最后會使用該值。

CFBundleGetInfoHTML

CFBundleGetInfoHTML字段含有會在bundle的信息窗口中顯示的HTML字符串。如果您希望在信息窗口中有更強(qiáng)的表現(xiàn)力,可以使用這 個鍵值對來替代純文本的CFBundleGetInfoString。通過把它加入到合適的.lproj目錄中的InfoPlist.strings文件 中,您也可以本地化該字符串。

如果CFBundleGetInfoString和CFBundleGetInfoHTML同時存在的話,系統(tǒng)會選擇使用CFBundleGetInfoHTML。

CFBundleGetInfoString

CFBundleGetInfoString字段含有會在bundle的信息窗口中顯示的純文本字符串(這里的字符串也就是Mac OS9中的長字符串)。該字段的格式應(yīng)該遵照Mac OS 9中的長字符串,例如:“2.2.1, ? Great Software, Inc,1999”。通過把它加入到合適的.lproj目錄中的InfoPlist.strings文件中,您也可以本地化該字符串。

如果存在CFBundleGetInfoHTML的話,系統(tǒng)不會選擇使用該字段。

CFBundleHelpBookFolder

CFBundleHelpBookFolder字段含有該bundle的幫助文件的文件夾名字。幫助通常被本地化成一種指定的語言,所以該字段指向的文件夾應(yīng)該是所選擇語言的.lproj目錄中的文件夾。

CFBundleHelpBookName

CFBundleHelpBookName指定了您的應(yīng)用程序的幫助主頁。該字段指定的幫助頁面名可以和HTML文件名不同。在幫助文件META標(biāo)簽的CONTENT屬性中指定了幫助頁面名。

應(yīng)用程序特定的字段:

表A-14 應(yīng)用程序特定的字段:

字段

類型

是否必須

摘要

CFAppleHelpAnchor String No 該bundle的初始HTML幫助文件。
NSAppleScriptEnabled String No 指定是否支持AppleScript。
NSHumanReadableCopyright String Yes 顯示在對話框中的版權(quán)信息。
NSJavaNeeded Boolean or String No 指定該程序是否需要一個Java虛擬機(jī)。
NSJavaPath Array No 一組Java類所在的路徑(前面需要加上NSJavaRoot)。
NSJavaRoot String No 包含Java類的根目錄。
NSMainNibFile** String Yes

應(yīng)用程序的主nib文件名。

NSPrincipalClass String Yes bundle的主類的名字。
NSServices Array No 一組描述了由應(yīng)用程序所提供的服務(wù)的字典。

CFAppleHelpAnchor

CFAppleHelpAnchor字段定義了bundle的初始HTML幫助文件名,不需要包括.html或.htm擴(kuò)展名。這個文件位于bundle的本地化資源目錄中,或者如果沒有本地化資源目錄的話,則直接被放在Resources目錄中。

NSAppleScriptEnabled

NSAppleScriptEnabled字段說明了該應(yīng)用程序是否支持AppleScript。如果您的應(yīng)用程序支持,就需要把該字符串的值設(shè)為“Yes”。

NSHumanReadableCopyright

NSHumanReadableCopyright字段包含了一個含有bundle的版權(quán)信息的字符串。您可以在“關(guān)于”對話框中顯示它。該字段通常會出現(xiàn)在InfoPlist.strings文件中,因?yàn)橥枰镜鼗撟侄蔚闹怠?/p>

NSJavaNeeded

NSJavaNeeded字段含有一個布爾值,用來確定在執(zhí)行該bundle的代碼之前Java虛擬機(jī)是否需要被載入并運(yùn)行。您也可以指定一個字符串類型的值“YES”代替布爾型的值。

NSJavaPath

NSJavaPath字段包含了一組路徑。每一個路徑指向一個Java類。該路徑相對于由NSJavaRoot字段定義的位置來說,可能是一個絕對路徑也可能是一個相對路徑。開發(fā)環(huán)境會自動把這些值保存在數(shù)組中。

NSJavaRoot

NSJavaRoot字段含有一個指向一個目錄的字符串。該目錄是應(yīng)用程序的Java類文件的根目錄

NSPrincipalClass

NSPrincipalClass字段定義了一個bundle的主類的名稱。對于應(yīng)用程序來說,缺省情況下這個名字就是應(yīng)用程序的名字。

NSServices

NSServices包含了一組字典,它詳細(xì)說明了應(yīng)用程序所提供的服務(wù)。表A-5列出了用來指定服務(wù)的字段。

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

字段

類型

描述

NSPortName String 該字段指定了由您的應(yīng)用程序監(jiān)聽器為接受外部服務(wù)請求所提供的端口名稱。
NSMessage String 該字段指定了用來調(diào)用該服務(wù)的實(shí)例方法名。在Objective-C中,實(shí)例方法的形式是messageName:userData:error:。在Java中,實(shí)例方法的形式是messageName(NSPasteBoard.String)。
NSSendTypes Array 該字段指定了一組可以被該服務(wù)讀取的數(shù)據(jù)類型名。NSPasteboard類列出了幾個常用的數(shù)據(jù)類型。您必須包含此字段,NSReturnTypes,或者兩者。
NSReturnTypes Array 該字段指定了一組可以被該服務(wù)返回的數(shù)據(jù)類型名。NSPasteboard類列出了幾個常用的數(shù)據(jù)類型。您必須包含此字段,NSSendTypes,或者兩者。
NSMenuItem Dictionary 該 字段包含一個字典,它指定了加入Services菜單中的文本。字典中的唯一一個字段被稱為default并且它的值是菜單項(xiàng)的文本。該值必須是唯一的。 您可以使用斜杠“/”來指定一個子菜單。例如,Mail/Send出現(xiàn)在Services菜單中時就是一個帶有Send子菜單并且名為Mail的菜單。
NSKeyEquivalent Dictionary 該字段是可選的,并且包含一個含有用來請求服務(wù)菜單命令的快捷按鍵的字典。與NSMenuItem類似,字典中的唯一一個字段被稱為default并且它的值是單個的字符。用戶可以通過按下Command,Shift功能鍵和相應(yīng)的字符來請求該快捷按鍵。
NSUserData String 該字段是一個可選字符串,它含有您的選擇值。
NSTimeout String 該字段是一個可選的數(shù)字字符串,它指定了從應(yīng)用程序請求服務(wù)到收到它的響應(yīng)所需要等待的毫秒數(shù)。

啟動服務(wù)字段:

啟動服務(wù)字段規(guī)定了Mac OS X中的應(yīng)用程序是怎樣被啟動的。這些字段適用于CFM和Mach-O可執(zhí)行文件。有關(guān)CFM和Mach-O可執(zhí)行文件的詳情可參見“安裝和集成”一章中的“CFM可執(zhí)行文件”。表A-6列出了啟動服務(wù)的字段。

表A-15 啟動服務(wù)字段:

字段

類型

是否必須

摘要

LSBackgroundOnly String No 指定了應(yīng)用程序是否僅僅運(yùn)行在后臺。(僅適用于Mach-O的應(yīng)用程序)。
LSPrefersCarbon String No 指定了應(yīng)用程序是否優(yōu)先運(yùn)行在Carbon環(huán)境中。
LSPrefersClassic String No 指定了應(yīng)用程序是否優(yōu)先運(yùn)行在Classic環(huán)境中。
LSRequiresCarbon String No 指定了應(yīng)用程序是否必須運(yùn)行在一個Carbon環(huán)境中。
LSRequiresClassic String No 指定了應(yīng)用程序是否必須運(yùn)行在一個Classic環(huán)境中。
LSUIElement String No 指定了應(yīng)用程序是否是一個用戶界面組件,即一個應(yīng)用程序不應(yīng)該出現(xiàn)在Dock中或強(qiáng)制退出窗口。

LSBackgroundOnly

如果該字段存在并且被設(shè)為“1”,啟動服務(wù)將只會運(yùn)行在后臺。您可以使用該字段來創(chuàng)建無用戶界面的后臺應(yīng)用程序。如果您的應(yīng)用程序使用了連接到窗口服務(wù)器 的高級框架,但并不需要顯示出來,您也應(yīng)該使用該字段。后臺應(yīng)用程序必須被編譯成Mach-O可執(zhí)行文件。該選項(xiàng)不適用于CFM應(yīng)用程序。

您也可以指定該字段的類型為Boolean或Number。然而,只有Mac OS X 10.2或以上的版本才支持這些類型的值。

LSPrefersCarbon

如果該字段被設(shè)為“1”,F(xiàn)inder將會在顯示簡介面板中顯示“在Classic環(huán)境中打開”控制選項(xiàng),缺省情況下該控件未被選中。如果需要,用戶可以修改這個控制選項(xiàng)來在Classic環(huán)境中啟動應(yīng)用程序。

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

LSPrefersClassic

如果該字段被設(shè)為“1”,F(xiàn)inder將會在顯示簡介面板中顯示“在Classic環(huán)境中打開” 控制選項(xiàng),缺省情況下該控件被選中。如果需要,用戶可以修改這個控制選項(xiàng)來在Carbon環(huán)境中啟動應(yīng)用程序。

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

LSRequiresCarbon

如果該字段被設(shè)為“1”,啟動服務(wù)將只在Carbon環(huán)境中運(yùn)行應(yīng)用程序。如果您的應(yīng)用程序不應(yīng)該運(yùn)行在Classic環(huán)境中的話,可以使用該字段。

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

LSRequiresClassic

如果該字段被設(shè)為“1”,啟動服務(wù)將只在Classic環(huán)境中運(yùn)行應(yīng)用程序。如果您的應(yīng)用程序不應(yīng)該運(yùn)行在Carbon兼容環(huán)境中的話,可以使用該字段。

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

LSUIElement

如果該字段被設(shè)為“1”,啟動服務(wù)會將該應(yīng)用程序作為一個用戶界面組件來運(yùn)行。用戶界面組件不會出現(xiàn)在Dock或強(qiáng)制退出窗口中。雖然它們通常作為后臺應(yīng) 用程序運(yùn)行,但是如果希望的話,它們也可以在前臺顯示一個用戶界面。點(diǎn)擊屬于用戶界面組件的窗口,應(yīng)用程序?qū)幚懋a(chǎn)生的事件。

Dock和登錄窗口是兩個用戶界面組件應(yīng)用程序。

應(yīng)用程序包字段:

應(yīng)用程序打包的目的是把一個應(yīng)用程序打包成一個自我包含的實(shí)體,并且對用戶隱藏了它的內(nèi)容。然而,用戶常常希望操作應(yīng)用程序的某些文件。例如,用戶可能希 望添加或刪除某個插件,本地化資源,等等。開發(fā)者可以在Info.plist 文件中指定一些可以由用戶維護(hù)的項(xiàng)目。那么Finder會把這些項(xiàng)目顯示在bundle的信息面板中,并允許用戶瀏覽,刪除或添加這些項(xiàng)目。

CFBundleInstallerInfo

應(yīng)用程序打包信息的根字段是CFBundleInstallerInfo。該字段定義了一個字典,它包含了表A-7中所列出的字段。“是否必須”列指出了哪些是您必須支持的功能。

表A-16-1 應(yīng)用程序打包字段:

字段

類型

是否必須

摘要

APInstallerURL String Yes 一個指向您希望安裝的文件的URL路徑。
APFiles Array Yes 一組字典,描述了那些可以被安裝的文件或目錄。

APInstallerURL

APInstallerURL字段指定了一個指向您希望安裝的文件的路徑。您必須以file://localhost/path/ 形式來說明這個路徑。所有被安裝的文件必須位于這個文件夾中。

APFiles

APFiles字段指定了一個字典,描述了您希望安裝的文件。每個字典條目可以包含某個文件或目錄的描述。您可以讓APFiles 字段包含在其自身中,用于指定在目錄內(nèi)部的文件。表A-8列出了用來指定有關(guān)單個文件或目錄的信息。

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

字段

類型

描述

APFileDescriptionKey String 用來顯示在Finder的信息窗口中的簡短描述。
APDisplayedAsContainer String 如果值為“Yes”,該項(xiàng)目作為一個目錄圖標(biāo)顯示在信息面板中;否則,它被顯示為一個文檔圖標(biāo)。
APFileDestinationPath String 一個安裝組件的相對路徑。
APFileName String 文件或目錄的名稱。
APFileSourcePath String 指向應(yīng)用程序包中組件的路徑,相對與APInstallerURL路徑。
APInstallAction String 操縱組件的動作:“Copy”或者“Open”

UIFileSharingEnabled 應(yīng)用程序支持itunes共享文件夾 值為 boolean 值 YES 共享; NO 不共享

這個字段在字段編輯器中的名稱為: Application supports iTunes file sharing

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI