Xcode中的Info.plist字段列表详解
Posted brave-sailor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xcode中的Info.plist字段列表详解相关的知识,希望对你有一定的参考价值。
Info.plist用于向ios提供关于app,bundle或者framework的一些重要信息。它指定了比如一个应用应该怎样启动,它如何被本地化,应用的名称,要显示的图标,还有更多。Info.plist文件实际上是苹果预定义schema的XML文件。
为了构建一个设备相关的健,你在健的后面要加上~iphone或者~ipad。
常用字段:
1.获取版本信息:
NSDictionary*infoDic = [[NSBundle mainBundle] infoDictionary];
NSString *localVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
2.应用支持http网络请求:
在Info.plist中添加 NSAppTransportSecurity 类型 Dictionary 。
在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型Boolean ,值设为 YES
注意类型NSAppTransportSecurity为Dictionary,NSAllowsArbitraryLoads为Boolean,复制粘贴的时候,不要多了空格,segment fault 页面上直接复制,经常会多一个出空格!
控制应用的名称:
表A-1 控制应用的名称
字段 |
类型 |
是否必须 |
摘要 |
CFBundleName |
String |
Yes |
bundle的简称, 这个健指定了你的应用的名称 |
CFBundleDisplayName | String |
No |
本地化的bundle名, 本地化,可以通过InfoPlist.strings文件来为每个语言指定一个合适的值 |
CFBundleDisplayName
CFBundleDisplayName字段指定了一个字符串值来标识bundle的显示名称。Finder和其他用户界面组件会把它显示给用户。这个名 称可以与文件系统中的bundle名不同。通过把字段加入适当的.lproj子目录中的InfoPlist.strings文件,就可以实现该字段的本地 化。如果您需要本地化这个字段,您还应该提供一个CFBundleName字段的本地化版本。
CFBundleName
CFBundleName指定了该bundle的简称。简称应该小于16个字符并且适合在菜单和“关于”中显示。通过把它加入到适当的.lproj子文件 夹下的InfoPlist.strings文件中,该字段可以被本地化。如果您本地化了该字段,那您也应该提供一个 CFBundleDisplayName字段的本地化版本。
应用标识+应用版本:
表A-2应用标识+应用版本
字段 |
类型 |
是否必须 |
摘要 |
CFBundleIdentifier |
String |
YES |
该bundle的唯一标识字符串。该字符串的格式类似java包的命名方式,例如:com.apple.myapp。 |
CFBundleShortVersionString |
String |
YES |
这个值是一个字符串,用来指定你在APP Store上面看的的版本号,这个值必须在每一次App Store发布版本中递增 |
CFBundleVersion |
String |
YES |
可执行文件的创建号, 这个健的值是一个证书,你可以在每一次发布时增加它。 |
CFBundleIdentifier
CFBundleIdentifier字段指定了bundle的一个唯一的标识字符串。该标识符采用了类似Java包的命名方式,例如com.apple.myapp。该bundle标识符可以在运行时定位bundle。预置系统使用这个字符串来唯一地标识每个应用程序。
它包含一个唯一标识的字符串,它是从你在iOS Provisioning Portal创建的App ID取得的 App ID包含两个部分:Team ID和Bundle ID
CFBundleShortVersionString
CFBundleShortVersionString字段指定了bundle的版本号。一般包含该bundle的主、次版本号。这个字符串的格式通常是 “n.n.n”(n表示某个数字)。第一个数字是bundle的主要版本号,另两个是次要版本号。该字段的值会被显示在Cocoa应用程序的关于对话框 中。
该字段不同于CFBundleVersion,它指定了一个特殊的创建号。而CFBundleShortVersionString的值描述了一种更加正式的并且不随每一次创建而改变的版本号。
CFBundleVersion
CFBundleVersion字段指定了一个字符串用来标识创建号。该字段的值通常随每一次创建而改变,并且会被显示在Cocoa”关于”对话框中的扩号里。
为了指定一个发布版的bundle的版本信息,可以使用CFBundleShortVersionString字段。参见“CFBundleShortVersionString”。
获取用户权限信息:
用来访问用户信息的Reason strings iOS6中需要从用户那里得到授权的数据
//Calendars,Contacts Location,Photos,Reminders
表A-3 获取用户权限信息
字段 |
类型 |
是否必须 |
摘要 |
NSCalendarsUsageDescription |
String |
No |
当应用第一次视图访问用户的日历的时候,会出现一个弹出框来向用户请求权限。如果你对这个键设置了一个值,那么这个值将会显示在弹出框中 |
NSContactsUsageDescription |
String |
No |
应用第一次尝试访问用户的通讯录的时候,会出现一个弹出框申请权限。就像是前一个键,你对这个键指定的值,将会显示在弹出框中 |
NSPhotoLibraryUsageDescription |
String |
No |
同上,照片 |
NSRemindersUsageDescription |
String |
No |
同上,备忘录 |
NSLocationUsageDescription |
String |
No |
同上,位置信息 |
应用图标:
表A-4 应用图标
字段 |
类型 |
是否必须 |
摘要 |
CFBundleIconFile |
String |
No |
图标文件的文件名- 在3.2版本被废弃 |
UIPrerendered Icon |
Boolean |
No |
这个键自从第一个iOS SDK就有了,它告诉iOS是否给你应用的图标添加光照效果 |
CFBundleIconFiles |
Array | No |
这个键的引入,是用来处理在iPad和retina屏幕的出现时,所需图标数量的增长的。这个健的值应该是一个字符串数组 - 在5.0版本被废弃CFBundleExecutable |
CFBundleIcons |
NSDictionary |
No |
这个健是iOS 5.0增加的,可以让开发者指定Newsstand图标和普通应用的图标 |
CFBundleIconFile
CFBundleIconFile字段指定了包含该bundle图标的文件。您给出的文件名不需要包含“.icns”扩展名。Finder会在该bundle的“Resource”文件夹内寻找图标文件。
如果您的bundle使用了自定义的图标,那您就必须指定该属性。假如您没有指定,Finder(和其他应用程序)会使用缺省的图标来显示您的bundle。
控制应用初始化启动:
表A-5 控制应用初始化启动
字段 |
类型 |
是否必须 |
摘要 |
UILaunchImageFile |
String |
No |
启动图片 |
NSMainNibFile |
String |
No |
应用程序的主nib文件名, 如果你用NIB的话,这个就是一个很重要的键。它指定了当你应用启动的时候,用于创建初始化窗口和相关对象的NIB文件 |
UIMainStoryboardFile |
String |
No |
如果你用Storyboard的话,这是一个很重要的键。它指定可一个storyboard文件,用于在应用启动的时候创建初始界面 |
NSMainNibFile
NSMainNibFile字段包含了一个含有应用程序的主nib文件名(不包含.nib文件扩展名)的字符串。一个nib文件作为一个 Interface Builder的存档文件,含有对用户界面的详细描述信息以及那些界面中的对象之间的关联信息。当应用程序被启动时,主nib文件会被自动装载。Mac OS X会寻找与应用程序名相匹配的nib文件。
用户界面:
表A-6 用户界面
字段 |
类型 |
是否必须 |
摘要 |
UISupportedInterfaceOrientations |
Array |
No |
这个键的值是一个你应用支持的屏幕方向的数组 |
UIInterfaceOrientation |
String |
No |
如果你的应用值支持一个方向,那么你应该设置这个键。它保证在你应用启动的时候,状态栏在正确的方向,而不是启动的时候在一个方向,然后又通过动画移动到另外一个方向。 |
UIStatusBarStyle |
String |
No |
设置应用启动时状态栏的初始风格 |
UIStatusBarHidden |
BOOL |
No |
这个键表示,在应用启动的时候,状态栏是否隐藏。 |
UIStatusBarTintParameters |
NSDictionary |
No |
状态栏可以进行一些美化 |
UISupportedInterfaceOrientations
这个键的值是一个你应用支持的屏幕方向的数组。可用选项有:
UIInterfaceOrientationPortrait:Home键在下方的竖屏模式
UIInterfaceOrientationPortraitUpsideDown:Home键在上方的竖屏模式
UIInterfaceOrientationLandscapeLeft:Home键在左方的竖屏模式
UIInterfaceOrientationLandscapeRight:Home键在右方的竖屏模式
UIStatusBarStyle
这个键设置应用启动时状态栏的初始风格。UIStatusBarStyle的枚举值:
UIStatusBarStyleDefault、UIStatusBarStyleBlackTranslucent、
UIStatusBarStyleBalackOpaque
UIStatusBarTintParameters
在iOS6中状态栏可以进行一些美化,在这个字典中又四个键:
Style:表示导航条的barStyle属性
Translucent:表示导航条的translucent属性
TintColor:这个指定了导航条的修饰颜色。
groundImage:如果你的导航条有背景图片,那么在这里把图片的文件名写上。
应用控制:
表A-7 应用控制
字段 |
类型 |
是否必须 |
摘要 |
UIRequiredDeviceCapabilities |
Array/Dictionary |
No |
它能让你指定设备必须要有的特性,或者设备必须不能有的特性 |
UIBackgroundModes |
Array |
No |
当你需要你的应用在后台运行时,就需要这个后台模式,数组里包含应用需要的所有后台模式 |
MKDirectionsApplicationSupportedModes |
Array |
No |
这个iOS6新增加的一个键。它允许你为特定的区域和交通模式指定你的应用的路由信息 |
UIDeviceFamily |
Number/Array |
No |
Xcode自动添加这个键,所以你不需要自己添加。它表示应用支持哪些设备 CFBundleGetInfohtml |
UIAppFonts |
Array |
No |
如果你需要额外的字体。这个键可以为你的应用添加非标准的字体 |
UIApplicationExitsOnSuspend |
Boolean |
No |
如果这个键设置为true,那么应用将会直接中断,而不是切换到后台 |
UIFileSharingEnabled |
Boolean |
No |
如果你希望用户能用iTunes的文件共享功能将文件从你的应用的document目录传入或传出,那么你需要设置这个键的值为Xcode 在 Info.plist Localizations 设置中显示有限的语言列表 Xcode Buildtime 错误:'无法加载文件列表的内容:'.../Info.plist'(在目标'xxxx'中) “帮助修复”错误:无法从文件中读取属性列表:info.plist UIUserInterfaceStyle 键在 Xcode 12 的 Info.plist 中不可用,如何从 Info.plist 禁用 Xcode 12 中的暗模式? |