本节书摘来自异步社区《iOS 6高级开发手册(第4版)》一书中的第1章,第1.2节添加设备能力限制,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.2 添加设备能力限制
iOS 6高级开发手册(第4版)
应用程序的Info.plist属性列表使你能够在向iTunes提交应用程序时指定应用程序的要求。这些限制允许告诉iTunes应用程序需要哪些设备特性。
每个iOS单元都会提供一个独特的特性集。一些设备会提供照相机和GPS能力,另外一些则不会。一些设备具有机载陀螺仪、自动聚焦,以及其他强大的选项。你可以指定在设备上运行应用程序时需要哪些特性。
在Info.plist文件中包括UIRequiredDeviceCapabilities键时,iTunes将限制把应用程序安装到提供必需能力的设备。把这个列表作为一个字符串数组或者字典提供。
数组指定每个必需的能力;该数组中的每一项都必须存在于设备上。字典允许显式要求或禁止某个特性,字典键就是能力,字典值用于设置特性是必须存在(布尔值true)还是必须省略(布尔值false)。
表1-1中详细说明了当前的键。其中只包括应用程序绝对需要或者不能支持的那些特性。如果应用程序可以提供解决办法,就不要以这种方式添加限制。表1-1讨论了每个特性。当使用禁令而不是需求时,意义就颠倒了,例如,不能机载自动聚焦照相机或陀螺仪,或者不支持游戏中心(Game Center)访问。
例如,考虑一个应用程序,当在备有照相机的设备上运行时,它将提供一个选项用于拍摄图片。如果应用程序是在前置摄像头的iPod Touch单元上工作,就不要包括进静物照相机限制。可代之以从应用程序内检查照相机兼容性,并在合适时展示照相机选项。添加静物照相机限制将从潜在的顾客池中排除掉许多早期的iPod Touch(第1~3代)和iPad(第1代)所有者。
1.2.1 用户权限描述
为了保护隐私,最终用户必须明确地允许应用程序访问提醒信号、照片、位置、联系人和日历数据。为了说服用户接受,它有助于解释应用程序可以怎样使用这类数据,并且说明访问它的原因。给位于Info.plist文件顶层的以下键分配字符串值。当iOS提示用户有关特定于资源的权限时,它将显示这些字符串,作为它的标准对话框的一部分:
NSRemindersUsageDescription
NSPhotoLibraryUsageDescription
NSLocationUsageDescription
NSContactsUsageDescription
NSCalendarsUsageDescription
1.2.2 其他常用的Info.plist键
下面给出了你可能想在属性列表中分配的另外几个常用键,以及有关它们可以做什么的描述。
UIFileSharingEnabled(Boolean型,默认为关):允许用户从iTunes中访问应用程序的Documents文件夹的内容。这个文件夹出现在应用程序沙盒的*。`
UIAppFonts(Array型,字体名称(包括其扩展)的字符串):指定在软件包中提供的自定义的TTF字体。在添加字体时,可以使用标准的UIFont调用访问它们。`
UIApplicationExitsOnSuspend(Boolean型,默认为关):当用户单击Home按钮时使应用程序能够终止,而不是转移到后台。当启用这个键时,iOS将会终止应用程序,并从内存中清除它。`
UIRequiresPersistentWifi(Boolean型,默认为关):指示iOS在应用程序活动时维持一条Wi-Fi连接。
UIStatusBarHidden(Boolean型,默认为关):如果启用这个键,则会在应用程序启动时隐藏状态栏。`
UIStatusBarStyle(String型,默认为UIStatusBarStyleDefault):指定应用程序启动时的状态栏的风格。`