IOS 特定於裝置的開發:Info.plist屬性列表的設定

haibo wang發表於2014-12-22

   應用程式的Info.plist屬性列表使你能夠在向iTunes提交應用程式時指定應用程式的要求。這些限制允許告訴iTunes應用程式需要哪些裝置特性。

   每個IOS單元都會提供一個獨特的特性集。一些裝置回提供照相機和GPS能力,另外一些則不會。一些裝置具有機載陀螺儀、自動聚焦,以及其他強大的選項。你可以指定在裝置上執行應用程式時需要哪些特性。

   在Info.plist檔案中包括UIRequiredDeviceCapabilities鍵時,iTunes將限制把應用程式安裝到提供必須能力的裝置。把這個列表作為一個字串陣列或者字典提供。

   陣列指定每個必須的能力;該陣列中每一項都必須存在於裝置上。字典允許顯示要求或禁止某個特性,字典鍵就是能力,字典值用於設定特性是必須存在(布林值true)還是必須省略(布林值false).

   圖1 必須的裝置能力

使用
telephony 應用程式需要Phone應用程式或者使用tel://URL
wifi 應用程式需要基於本地802.11的網路訪問。如果在應用程式執行時IOS必須維持該Wi-Fi連線,可以新增UIRequiresPersistentWiFi作為頂級屬性列表鍵
sms 應用程式需要Messages應用程式或者使用sms://URL
stil-camera 應用程式需要機載靜物照相機,並且可以使用影象拾取器介面從該靜物照相機捕獲照片
auto-focus-camera

應用程式需要額外的聚焦能力以進行微距攝影,或者拍攝特別清晰的影象以進行影象內的資料監測

front-facing-camera 應用程式需要在裝置上前置攝像頭
camera-flash 應用程式需要閃光燈特性
video-camera 應用程式需要能夠錄製視訊的照相機
accelerometer

應用程式需要特定於加速計的反饋,而不止是簡單的UIViewController定向事件。

gyriscope 應用程式需要裝置上的機載陀螺儀
 location-services 應用程式需要任意型別的Core Location
gps 應用程式需要使用Core Location,並且需要更為精確的GPS定位
magnetometer 應用程式需要使用Core Location,並且需要與前進方向相關的事件,既行進的方向(磁力計是內建的羅盤)
gamekit 應用程式需要訪問遊戲中心
microphone 應用程式需要使用內建的麥克風或者可以提供麥克風的附件
opengles-1 應用程式需要OpenGL ES 1.1
opengles-2 應用程式需要OpenGL ES 2.0
armv6 應用程式僅針對armv6指令集進行編譯
armv7 應用程式僅針對armv7指令集進行編譯
peer-peer 應用程式通過藍芽技術使用GameKit對等連線
blueetooth-le 應用程式需要藍芽技術的低功耗支援
   

 

(1)使用者許可權描述

   為了保護隱私,終端使用者必須明確的允許應用程式訪問提醒訊號、照片、位置、聯絡人、和日曆資料。為了說服使用者接受,它有助於解釋應用程式可以怎樣使用這類資料,並且說明訪問他的原因。給位於Info.plist檔案頂層的以下鍵分配字串值。當IOS提示使用者有關特定資源的許可權時,他將顯示這些字串,作為他的標準對話方塊的一部分。

     NSRemindersUsageDescription

     NSPhotoLibraryUsageDescription

     NSLocationUsageDescription

     NSContactsUsageDescription

     NSCalendarsUsageDescription

(2)其他常用的Info.plist鍵

   下面給出了你可能想在屬性列表中分配的另外幾個常用鍵,以及有關他們可以做什麼的描述。

     UIFileSharingEnabled (Boolean型,預設為關):允許使用者從iTunes中訪問應用程式的Documents資料夾中的內容。這個資料夾出現在應用程式沙盒的頂級。

     UIAppFonts(Array型,字型名稱(包括其擴充套件)的字串):指定在軟體包中提供自定義的TTF字型。再新增字型時,可以使用標準的UIFont呼叫訪問他們。

     UIApplicationExitsOnSuspend(Boolean 型,預設為關):當使用者單擊Home按鈕時使應用程式能夠終止,而不是退出到後臺。當啟用這個鍵時,當按下Home鍵時,會終止應用程式,並從記憶體中清除它。

     UIRequiresPersistentWifi (Boolean型,預設為關):指示IOS在應用程式活動時維持一條Wi-Fi連線

     UIStatusBarHidden (Boolean型,預設為關):如果啟用這個鍵,則會在應用程式中啟動時隱藏狀態列

     UIStatusBarStyle (string 型,預設為UIStatusBarStyleDefault):指定應用程式啟動時的狀態列的風格。

相關文章