原文:IOS之Info.plist文件簡介javascript
http://www.apkbus.com/android-130240-1-1.htmlphp
(出處: Android開發論壇 - 安卓開發論壇 - Android開發 - 安卓論壇 - 移動互聯網門戶)html
經過一種特殊的信息屬性列表文件,app向系統提供本身的元信息。
屬性列表可用來構建任意數據,這些數據在運行時是可訪問的。每一個屬性列表都包含了一個bundle的配置信息。文件中的keys和values描述了許多要應用於該bundle的行爲以及配置選項。Xcode一般會爲每一個基於bundle的工程自動建立該屬性列表文件,而且提供許多合適的keys以及其對應的默認的values。以後能夠編輯該文件,添加任何工程所需的keys和values,或修改現有的keys所對應的values。
Info.plist文件
每一個application都使用Info.plist文件來存儲以上的元信息,從名稱上也能夠判斷出Info.plist就是以上提到的「屬性列表」。IOS用Info.plist來決定bundle所顯示的icon,當前app支持打開的文檔類型,等等其它的信息。正如以上所提到的,Info.plist自己是一種結構化的文本文件,它包含了一些重要的配置信息。Info.plist文件多數狀況下是以UTF-8進行編碼,而且其內部的配置內容實際上是以XML格式進行組織。XML的根節點是一個詞典(dictionary),包含描述bundle各個方面的keys和values。系統讀取該文件,並獲取app的配置信息。
按照約定,屬性列表文件的名稱就是Info.plist。該文件名稱時大小寫敏感的,而且首字母必須是大寫的"I".在IOS的apps中,當新工程建立完畢後,會自動建立一個名爲-Info.plist文件,該文件位於bundle目錄(Supporting Files)的頂部,在工程構建時,該文件用以生成Info.plist文件,以後添加至bundle中。咱們以TestPro爲例,當用Xcode建立名爲TestPro工程後,其目錄結構以下: java
由於plist也屬於文本文件,並以XML格式進行內容的組織,咱們能夠用任何支持UTF-8的文本編輯器打開並對其進行各類編輯操做。但由於Xcode自己提供的對於plist文件內容的操做已經很是方便,基本上利用Xode編輯plist仍是首選。要查看XML下plist文件的內容咱們能夠選中TestPro-Info.plist文件而後右鍵——>Open As ——>Source Code
Core Foundation Keys
Lanch Services Keys 加載服務項,提供了App加載所依賴的配置,描述了app啓動的方式選擇。
Cocoa Keys Cocoa框架或Cocoa Touch框架依賴這些keys來標識更高級別的配置項目,如app的main nib文件,主要類。這些key描述影響着Cocoa和Cocoa Touch框架初始化和運行app的運行方式
UIKit Keys 描述IOS Apps的行爲,每一個IOS應用都依賴於Info.plist的keys來與IOS系統通訊。Xcode提供了生成的plist文件提供了全部app所需的那些比較重要的keys。 但app可能須要擴展默認的plist來描述更多的信息,如定製app啓動後的默認旋轉方向,標識app是否支持文件共享等等。
OS X Keys 描述了Mac Apps的行爲,本章不描述。