info.plist一些字段含義

Info.plist 用于向 iOS 提供關(guān)于 app , bundle 或者 framework 的一些重要信息粥诫。它指定了比如一個應(yīng)用應(yīng)該怎樣啟動辙培,它如何被本地化蔑水,應(yīng)用的名稱,要顯示的圖標扬蕊,還有更多搀别。 Info.plist 文件實際上是蘋果預(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 字段指定了一個字符串值來標識 bundle 的顯示名稱羔飞。 Finder 和其他用戶界面組件會把它顯示給用戶。這個名 稱可以與文件系統(tǒng)中的 bundle 名不同檐春。通過把字段加入適當?shù)?.lproj 子目錄中的 InfoPlist.strings 文件逻淌,就可以實現(xiàn)該字段的本地 化。如果您需要本地化這個字段疟暖,您還應(yīng)該提供一個 CFBundleName 字段的本地化版本卡儒。

CFBundleName

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

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

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

字段

類型

是否必須

摘要

CFBundleIdentifier

String

YES

該bundle的唯一標識字符串。該字符串的格式類似java包的命名方式缘圈,例如:com.apple.myapp劣光。

CFBundleShortVersionString

String

YES

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

CFBundleVersion

String

YES

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

CFBundleIdentifier

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

它包含一個唯一標識的字符串,它是從你在 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 字段指定了一個字符串用來標識創(chuàng)建號退疫。該字段的值通常隨每一次創(chuàng)建而改變,并且會被顯示在 Cocoa” 關(guān)于 ” 對話框中的擴號里勾哩。

為了指定一個發(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

當應(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)用圖標:

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

字段

類型

是否必須

摘要

CFBundleIconFile

String

No

圖標文件的文件名-? 在? 3.2 版本被廢棄

UIPrerendered Icon

Boolean

No

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

CFBundleIconFiles

Array No

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

CFBundleIcons

NSDictionary

No

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

CFBundleIconFile

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

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

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

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

字段

類型

是否必須

摘要

UILaunchImageFile

String

No

啟動圖片

NSMainNibFile

String

No

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

UIMainStoryboardFile

String

No

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

NSMainNibFile

NSMainNibFile 字段包含了一個含有應(yīng)用程序的主 nib 文件名(不包含 .nib 文件擴展名)的字符串泳唠。一個 nib 文件作為一個 Interface Builder 的存檔文件,含有對用戶界面的詳細描述信息以及那些界面中的對象之間的關(guān)聯(lián)信息宙搬。當應(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)欄可以進行一些美化

UISupportedInterfaceOrientations

這個鍵的值是一個你應(yīng)用支持的屏幕方向的數(shù)組建峭。可用選項有:

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

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

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

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

UIStatusBarStyle

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

UIStatusBarStyleDefault 亿蒸、 UIStatusBarStyleBlackTranslucent 、

UIStatusBarStyleBalackOpaque

UIStatusBarTintParameters

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

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

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

MKDirectionsApplicationSupportedModes

Array

No

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

UIDeviceFamily

Number/Array

No

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

CFBundleGetInfoHTML

UIAppFonts

Array

No

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

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在默認情況下晾蜘,如果設(shè)備30 分鐘沒有活動,它就會關(guān)閉WiFi連接眠屎。如果你設(shè)置這個鍵的值為 true 剔交,那么這個行為會被覆蓋,只要你的應(yīng)用是打開的改衩,網(wǎng)絡(luò)連接就不會關(guān)閉

UISupportedExternalAccessoryProtocols

Array

No

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

UIBackgroundModes

當你需要你的應(yīng)用在后臺運行時岖常,就需要這個后臺模式 , 數(shù)組里包含應(yīng)用需要的所有后臺模式,可以從以下幾個值里面? ? ? 選擇:? ? audio? :使用音頻框架來播放或者錄制音頻? ? location? :需要在后臺訪問用戶的位置信息? ? voip? :這個應(yīng)用支持 IP 語音燎字,需要在后臺進行 Internet 連接和音頻播放? ? newsstand-content? :使用 Newsstand API 在后臺下載并處理內(nèi)容腥椒,這允許當一個代表有新的可用發(fā)布的推送? ? ? 發(fā)進來的時候喚醒應(yīng)用? ? external-accessory? :使用 External Accessory 框架來和外部的設(shè)備驚醒通訊

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

高級視圖控制:

表A-8 高級視圖控制

字段

類型

是否必須

摘要

UIViewEdgeAntialiasing

Boolean

No

默認情況下,你的視圖被 iOS 的渲染系統(tǒng)繪制候衍,不包括反鋸齒功能笼蛛。這是因為不是用反鋸齒運行速度會快很多

UIViewGroupOpacity

Boolean

No

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

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

表A-9 Core OS

字段

類型

是否必須

摘要

LSRequiresIPhoneOS

Boolean

No

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

CFBundlePackageType

String

No

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

)

CFBundleInfoDictionaryVersion

String

Yes

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

CFBundleExecutable

String

Yes

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

CFBundleSignature

String

Yes

用來標識創(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)的當前版本號壕探。該字段的存在使得可以支持 Info.plist 格式將來的版本。在您建立一個 bundle 時郊丛, Project Builder 會自動產(chǎn)生該字段李请。

CFBundleExcutable

CFBundleExecutable 標識了 bundle 的可執(zhí)行主文件的名稱。對于一個應(yīng)用程序來說 , 就是該應(yīng)用程序的可執(zhí)行文件厉熟。對于一個可加載 bundle, 它是一個可以被 bundle動態(tài)加載的二進制文件导盅。對于一個框架,它是一個共享庫揍瑟。 Project Builder 會自動把該字段加入到合適項目的 Info.plist 文件中白翻。? ? ? 對于框架,考慮到啟動效率的原因绢片,可執(zhí)行文件名需要和框架名同名滤馍。該可執(zhí)行文件名不應(yīng)該包含可用于多種平臺的擴展名。

注意您必須在 bundle 的 Info.plist 文件中包含一個有效的 CFBundleExecutable 字段底循。即使當用戶重命名應(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ū)那槽。這個鍵的值是一個字符串數(shù)組悼沿,數(shù)組中的每一個值都代表支持的地區(qū)

CFBundleDevelopmentRegion

String

No

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

必須的資源的話,它用來表示默認的本地化區(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)一個單獨的 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)這些值的詳細描述可以參見 “ 文檔的配置 ” 施逾。該字段是必須的敷矫。( 當打開這個 URL 時你的應(yīng)用所扮演的角色)

CFBundleURLIconFile String

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

CFBundleURLName String

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

CFBundleURLSchemes Array

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

CFBundleDocumentTypes

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

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

字段

類型

描述

CFBundleTypeExtensions Array

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

CFBundleTypeIconFile

String

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

CFBundleTypeName String

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

CFBundleTypeOSTypes Array

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

CFBundleTypeRole String

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

NSDocumentClass String

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

NSExportableAs Array

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

使用iCloud:

表A-12 使用iCloud

字段

類型

是否必須

摘要

NSUbiquitousDisplaySet

String

No

iCloud 使用這個鍵來表示你應(yīng)用的文件存儲”螅可以把它想象成 iCloud 中的一個目錄用來存放你應(yīng)用中的文件

Bundle核心字段:

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

表A-13 標準字段概要:

字段

類型

是否必須

摘要

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

當該bundle的幫助啟動時顯示的幫助文件的名字? 侧甫。

CFBundleDevelopmentRegion

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

CFBundleGetInfoHTML

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

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

CFBundleGetInfoString

CFBundleGetInfoString 字段含有會在 bundle 的信息窗口中顯示的純文本字符串(這里的字符串也就是 Mac OS 9 中的長字符串)。該字段的格式應(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 標簽的 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虛擬機餐屎。

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 擴展名。這個文件位于 bundle 的本地化資源目錄中转锈,或者如果沒有本地化資源目錄的話盘寡,則直接被放在 Resources 目錄中。

NSAppleScriptEnabled

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

NSHumanReadableCopyright

NSHumanReadableCopyright 字段包含了一個含有 bundle 的版權(quán)信息的字符串。您可以在 “ 關(guān)于 ” 對話框中顯示它影涉。該字段通常會出現(xiàn)在 InfoPlist.strings 文件中冠绢,因為往往需要本地化該字段的值。

NSJavaNeeded

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

NSJavaPath

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

NSJavaRoot

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

NSPrincipalClass

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

NSServices

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

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

字段

類型

描述

NSPortName String 該字段指定了由您的應(yīng)用程序監(jiān)聽器為接受外部服務(wù)請求所提供的端口名稱原押。

NSMessage String 該字段指定了用來調(diào)用該服務(wù)的實例方法名胁镐。在Objective-C中,實例方法的形式是messageName:userData:error:诸衔。在Java中盯漂,實例方法的形式是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并且它的值是菜單項的文本鄙漏。該值必須是唯一的嗤谚。 您可以使用斜杠“/”來指定一個子菜單棺蛛。例如,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)用程序是否僅僅運行在后臺嗽上。(僅適用于Mach-O的應(yīng)用程序)次舌。

LSPrefersCarbon String No 指定了應(yīng)用程序是否優(yōu)先運行在Carbon環(huán)境中。

LSPrefersClassic String No 指定了應(yīng)用程序是否優(yōu)先運行在Classic環(huán)境中炸裆。

LSRequiresCarbon String No 指定了應(yīng)用程序是否必須運行在一個Carbon環(huán)境中垃它。

LSRequiresClassic String No 指定了應(yīng)用程序是否必須運行在一個Classic環(huán)境中。

LSUIElement String No 指定了應(yīng)用程序是否是一個用戶界面組件烹看,即一個應(yīng)用程序不應(yīng)該出現(xiàn)在Dock中或強制退出窗口。

LSBackgroundOnly

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

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

LSPrefersCarbon

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

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

LSPrefersClassic

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

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

LSRequiresCarbon

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

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

LSRequiresClassic

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

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

LSUIElement

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

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

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

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

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”丑掺,該項目作為一個目錄圖標顯示在信息面板中获印;否則,它被顯示為一個文檔圖標街州。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艳丛,隨后出現(xiàn)的幾起案子匣掸,更是在濱河造成了極大的恐慌,老刑警劉巖氮双,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碰酝,死亡現(xiàn)場離奇詭異,居然都是意外死亡戴差,警方通過查閱死者的電腦和手機送爸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暖释,“玉大人袭厂,你說我怎么就攤上這事》谷耄” “怎么了嵌器?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谐丢。 經(jīng)常有香客問我爽航,道長,這世上最難降的妖魔是什么乾忱? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任讥珍,我火速辦了婚禮,結(jié)果婚禮上窄瘟,老公的妹妹穿的比我還像新娘衷佃。我一直安慰自己,他們只是感情好蹄葱,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布氏义。 她就那樣靜靜地躺著,像睡著了一般图云。 火紅的嫁衣襯著肌膚如雪惯悠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天竣况,我揣著相機與錄音克婶,去河邊找鬼。 笑死,一個胖子當著我的面吹牛情萤,可吹牛的內(nèi)容都是我干的鸭蛙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼筋岛,長吁一口氣:“原來是場噩夢啊……” “哼娶视!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泉蝌,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤歇万,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后勋陪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贪磺,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年诅愚,在試婚紗的時候發(fā)現(xiàn)自己被綠了寒锚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡违孝,死狀恐怖刹前,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雌桑,我是刑警寧澤喇喉,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站校坑,受9級特大地震影響拣技,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耍目,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一膏斤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧邪驮,春花似錦莫辨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至喻粹,卻和暖如春敞映,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背磷斧。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弛饭。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓冕末,卻偏偏與公主長得像,于是被迫代替她去往敵國和親侣颂。 傳聞我的和親對象是個殘疾皇子档桃,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)憔晒,斷路器藻肄,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • 見www.reibang.com/p/59279b018217 Application can be killed...
    heatbeats閱讀 3,019評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法妖泄,類相關(guān)的語法芝薇,內(nèi)部類的語法赞咙,繼承相關(guān)的語法录别,異常的語法速挑,線程的語...
    子非魚_t_閱讀 31,587評論 18 399
  • Application can be killed immediately after launchKey: NS...
    HoyaWhite閱讀 6,146評論 7 7
  • 【讀】個人成長的三個階段嘿悬。 【以】我覺得自己一直處于前兩個階段交互出現(xiàn)的狀態(tài)里低零,自信心完全建立在別人的評價里婆翔,把所...
    哈利的海德薇1983閱讀 106評論 0 1