关于 Info.plist 文件和 Xcode 5

Posted

技术标签:

【中文标题】关于 Info.plist 文件和 Xcode 5【英文标题】:About Info.plist file and Xcode 5 【发布时间】:2013-11-11 11:26:52 【问题描述】:

我对在提交应用程序之前应包含在项目的Info.plist 文件中的信息有一些疑问:

A) 关于CFBundleIcons:当我在 Xcode 中打开文件作为源代码并显示 xml 格式时,我看到了这个键,但是当我将它作为属性列表打开时,我只看到一个 Icon files (ios 5) 条目,是对吗?另一方面,我已经更改了我最初在目标设置的常规选项卡中拥有的应用程序图标,Info.plist 文件也一直列出旧应用程序图标,而我添加的新图标没有@他们名字中的 987654325@ 扩展名......我应该手动处理这些信息,还是在我更改目标设置中的图标时出现问题?名称是否应包含png 扩展名?我应该列出图标的所有版本(标准和@2x),还是只列出标准的名称就足够了?

B) 关于UIRequiresPersistentWifi 键,Apple 的文档是这样说的

如果您的应用需要 Wi-Fi 连接,请包含此密钥

我不确定是否必须包含此密钥:我的应用程序执行网络操作,但它们可以通过 WWAN 完成,而不仅仅是通过 Wi-Fi。并非我的应用的所有功能都需要执行网络连接。

C) 关于UIRequiredDeviceCapabilities 键。反过来,我在这里有一些问题:Apple 说

UIRequiredDeviceCapabilitieskey 的值可以是一个数组或一个字典,其中包含用于标识您的应用需要(或明确禁止)功能的附加键。

当他们说“您的应用需要的功能”时,它们是什么意思:如果没有这些功能,应用根本无法使用这些功能,还是您的应用可以使用的所有功能?例如:我的应用程序包含一个用于侦听设备位置的选项。这是一个可选功能,用户可以启用和禁用它。当用户启用该选项时,我会检查[CLLocationManager locationServicesEnabled]。我没有在plist 文件中设置location-services 值,并且该应用程序已经过测试并且该功能有效,并且编译器从未抱怨过。如果我想提交应用程序,我应该包含该值吗?

其他功能也会发生类似的情况,例如microphonestill-camera。我在应用程序的某个位置使用UIImagePickerController,以及用于语音识别的麦克风,但这也是用户必须选择的应用程序的可选功能,它们不会影响其整体操作。而且我还没有在plist 中包含这样的值,它们正在工作......

提前致谢

【问题讨论】:

【参考方案1】:

A: 如果你只想发布 iPhone 应用你需要提供 2 个图标(@1x, @2x),现在我认为@1x 不是必须的,如果你想同时发布 iPad 和 iPhone,你可能需要提供4个图标。但是如果你不关心质量1图标是可以的。

B:这行 UIRequiresPersistentWifi 不是必须的。

C:Same as B) 这行 UIRequiresPersistentWifi 不是必须的。如果您对 iOS 系统有更多要求。

【讨论】:

以上是关于关于 Info.plist 文件和 Xcode 5的主要内容,如果未能解决你的问题,请参考以下文章

Xcode中的Info.plist字段列表详解

iOS开发 Xcode中的Info.plist字段含义

如何告诉 Xcode 我的 info.plist 和 .pch 文件在哪里

Xcode找不到本地化的info.plist

Xcode 找不到本地化的 info.plist

Xcode 9:xcodebuild -exportArchive 错误读取文件:info.plist