我在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>
根据我对Microsoft文档here的理解,也由SO问题here引用,Apache Cordova工具允许您将* info.plist文件添加到/ res / native /用于代替任何生成文件的ios文件夹。但是,我不能让它发挥作用。
上面的文档(在我看来)对于文件的命名有点混乱......
将自定义Info.plist文件放在res / native / ios / config.xml中 显示名称文件夹以覆盖诸如启动画面或图标之类的设置。 Info.plist文件名必须重命名如下:config.xml display name-Info.plist更新iOS框架密钥。
这是我认为我可能会出错的地方;我根本无法确定文件的名称应该是什么。
给定一个项目&#34;显示名称&#34; &#34;我的项目&#34; (如&#34; Common选项卡&#34;,&#34;显示名称&#34;在设计器中查看config.xml时),我假设文件名已经是&#34;我的项目-Info.plist&#34;或者可能&#34; config.xml我的项目-Info.plist&#34;。我也不确定是否应该创建另一个子文件夹来包含文件......
将自定义Info.plist文件放在res / native / ios / config.xml中 显示名称文件夹
然而,如果我在构建之后在Xcode中打开项目,我使用这些文件名中的任何一个(remotebuild / taco子系统在〜/ .taco_home / remote-builds / taco-中留下项目的副本remote / builds / nnn / cordovaApp / platforms / ios / My Project&#34;文件夹,直到你关闭remotebuild服务器),然后查看使用我的设置不存在的构建提交的plist。
我还发现有一个&#34;我的项目-Info.plist&#34;在&#34;平台/ ios /我的项目&#34;文件夹,但如果我再次对该文件副本进行更改,则不会过滤到Mac进行构建。
任何人都可以验证我应该使用的文件夹和文件名。我知道我上面提到的SO问题是在2月回来的,因此它将引用其中一个预览构建并且知道项目的格式在那时和RTM之间发生了变化,这可能就是我过时的指示。
感谢。
答案 0 :(得分:3)
您可以创建一个插件来执行此操作。这就是plugin.xml的样子:
<plugin ...>
<platform name="ios">
<config-file target="*-Info.plist" parent="UIStatusBarHidden">
<true/>
</config-file>
<config-file target="*-Info.plist" parent="UIViewControllerBasedStatusBarAppearance">
<false/>
</config-file>
</platform>
</plugin>
这是一个很好的参考: https://github.com/leecrossley/cordova-plugin-transport-security
答案 1 :(得分:0)
好的,我终于弄明白了这是怎么回事。给出示例显示名称&#34;我的项目&#34;以上...
我想文档中引用&#34; config.xml显示名称&#34;确实有意义,因为它引用了&#34;显示名称&#34;查看&#34; config.xml&#34;时从公共标签中查看在设计器中(虽然元素实际上命名为&#34; name&#34;)。我仍然认为这不是很清楚!
但请注意,将使用该文件而不是生成的文件,并且对config.xml所做的任何更改都不会 反映在这个文件中(你将不得不复制这些 手动更改。
因此建议您从原始文件的副本开始,该副本可以在&#34; platforms / ios / {display name} / {display name} -Info.plist&#34;中找到,或者坚持使用示例,&#34; platforms / ios / My project / My project-Info.plist&#34;。