我正在 VS2015 上使用 Apache Cordova 工具来开发一个项目,我需要在 *info.plist 文件中设置一些附加选项,以便暂时解锁 HTTP Web 访问 (NsAppTransportSecurity) 并启用地理定位服务在后台运行。
基本上,我需要添加以下内容......
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
<key>NSLocationAlwaysUsageDescription</key>
<string>Location services are required.</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
根据我对微软文档的理解here https://msdn.microsoft.com/en-us/library/dn757053.aspx#NativeConfig,也被 SO 问题引用here https://stackoverflow.com/questions/28320904/patching-manifest-plist-to-build-with-different-platform-specific-settings, Apache Cordova 工具允许您将 *info.plist 文件添加到 /res/native/ios 文件夹以代替任何生成的文件。然而我无法让它发挥作用。
上面的文档(在我看来)对于文件的命名有点令人困惑......
将自定义 Info.plist 文件放置在 res/native/ios/config.xml 中
显示名称文件夹以覆盖初始屏幕或图标等设置。
Info.plist 文件名必须重命名为:config.xml 显示
name-Info.plist 用于更新 iOS 框架密钥。
这就是我认为我可能出错的地方;我根本无法弄清楚该文件的名称应该是什么。
给定“我的项目”的项目“显示名称”(在设计器中查看 config.xml 时在“常用选项卡”、“显示名称”上指定),我假设文件名是“我的项目- Info.plist”或可能是“config.xml 我的项目-Info.plist”。我也不确定是否应该创建另一个子文件夹来包含该文件......
将自定义 Info.plist 文件放置在 res/native/ios/config.xml 中
显示名称文件夹
但是,如果我在构建后在 Xcode 中打开项目(remotebuild/taco 子系统会在 ~/.taco_home/remote-builds/taco-remote/builds 中留下项目的副本),则无论我使用哪个文件名/nnn/cordovaApp/platforms/ios/My Project”文件夹,直到关闭远程构建服务器),然后查看随构建提交的 plist,我的设置不存在。
我还发现“Platforms/ios/My Project”文件夹中有一个“My project-Info.plist”,但如果我再次对此文件副本进行更改,它们不会过滤到 Mac 进行构建。
任何人都可以验证我应该使用的文件夹和文件名吗?我知道我上面提到的 SO 问题早在 2 月份,因此将指的是预览版本之一,并且知道项目的格式在那时和 RTM 之间发生了变化,这可能只是我遵循过时的说明。
Thanks.