【问题标题】:Tools for Apache Cordova (VS2015): Adding custom entries to *info.plist for iOSApache Cordova 工具 (VS2015):为 iOS 添加自定义条目到 *info.plist
【发布时间】:2015-09-23 15:53:50
【问题描述】:

我正在使用 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 文件夹中用于代替任何生成的文件。但是我不能让它工作。

上面的文档(在我看来)对于文件的命名有点混乱......

在 res/native/ios/config.xml 中放置一个自定义的 Info.plist 文件 显示名称文件夹以覆盖启动画面或图标等设置。 Info.plist 文件名必须重命名如下: config.xml 显示 name-Info.plist 来更新 iOS 框架键。

这是我认为我可能会出错的地方;我根本无法弄清楚文件的名称应该是什么。

给定“我的项目”的项目“显示名称”(在设计器中查看 config.xml 时在“通用选项卡”、“显示名称”中指定),我假设文件名是“我的项目-Info.plist”或可能是“config.xml 我的项目-Info.plist”。我也不确定是否应该创建另一个子文件夹来包含该文件...

在 res/native/ios/config.xml 中放置一个自定义的 Info.plist 文件 显示名称文件夹

但是,如果我在构建项目后在 Xcode 中打开项目时使用这些文件名中的哪一个(remotebuild/taco 子系统会在 ~/.taco_home/remote-builds/taco- remote/builds/nnn/cordovaApp/platforms/ios/My Project”文件夹,直到您关闭 remotebuild 服务器),然后查看已与构建一起提交的 plist,我的设置不存在。

我还发现“Platforms/ios/My Project”文件夹中有一个“My project-Info.plist”,但如果我再次更改此文件副本,它们不会过滤到 Mac用于建筑。

任何人都可以验证我应该使用的文件夹和文件名。我知道我上面提到的 SO 问题是在 2 月,因此将一直指的是其中一个预览版本,并且知道项目的格式在那时和 RTM 之间发生了变化,这可能只是我遵循过时的说明。

谢谢。

【问题讨论】:

    标签: ios cordova visual-studio-2015 visual-studio-cordova


    【解决方案1】:

    您可以创建一个插件来执行此操作。这就是 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

    【讨论】:

    • 我实际上尝试这样做,但我得到了 元素的内容错误,它只会产生更多错误。很好的链接;我可以从那里看到我哪里出错了。我实际上可能想做类似的事情并将其用作“配置”插件。谢谢。
    【解决方案2】:

    好的,我终于弄清楚了它是如何工作的。鉴于上面“我的项目”的示例显示名称...

    • plist 文件应命名为“My project-Info.plist”
    • 文件应放在“res/native/ios/My project”文件夹中

    我想文档中对“config.xml 显示名称”的引用确实有意义,因为它在设计器中查看“config.xml”时引用了公共选项卡中的“显示名称”(尽管该元素实际上被命名为“名称”)。我仍然认为这不是很清楚!

    但是请注意,将使用该文件而不是生成的文件,并且对 config.xml 所做的任何更改都不会 反映在此文件中(您将不得不复制这些 手动更改)。

    因此建议您从可以在“platforms/ios/{display name}/{display name}-Info.plist”中找到的原始文件的副本开始,或者继续使用示例“platforms /ios/我的项目/我的项目-Info.plist”。

    【讨论】:

      猜你喜欢
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      相关资源
      最近更新 更多