Phonegap 为 NSAppTransportSecurity 修改 config.xml

Posted

技术标签:

【中文标题】Phonegap 为 NSAppTransportSecurity 修改 config.xml【英文标题】:Phonegap modify config.xml for NSAppTransportSecurity 【发布时间】:2016-06-16 06:16:10 【问题描述】:

我有下一个问题,我必须将 NSAppTransportSecurity 密钥添加到我的 info.plist 文件中。

因为我有许多不同的 config.xml 用于测试、开发和生产服务器,所以手动将 NSAppTransportSecurity 密钥添加到 plist 是不好的。

这可以在 config.xml 本身内部完成吗?

我试过这个:

<manifest device="ios" tag="plist/dict">
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
        ...
        </dict>
    </array>

    <!--Here is my own:-->
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
</manifest>

但是在 cordova 构建 iOS 之后,我在 info.plist 中得到了这个:

<key>[object Object]</key>
<string>NSAppTransportSecurity</string>

但是 CFBundleURLTypes 可以正常移植。我做错了什么?

【问题讨论】:

只需将平台添加到ios 然后使用默认的info.plist文件访问 【参考方案1】:

您可以使用cordova-custom-config 插件来实现:

$ cordova plugin add cordova-custom-config

然后添加到config.xml:

<platform name="ios">
    <config-file platform="ios" target="*-Info.plist" parent="NSAppTransportSecurity">
        <dict>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
    </config-file>
</platform>

【讨论】:

【参考方案2】:

我同意 DaveAlden 的解决方案。但是如果NSAppTransportSecurity 是你唯一有兴趣在*-Info.plist 文件中操作的东西,那么你可以使用cordova-ios-security plugin

此插件负责您在 *-Info.plist 文件中手动执行的工作

【讨论】:

以上是关于Phonegap 为 NSAppTransportSecurity 修改 config.xml的主要内容,如果未能解决你的问题,请参考以下文章

应该为每个平台创建phonegap?

为 Phonegap 条形码插件构建测试

Phonegap + Facebook 插件:为 iOs 准备的 Xcodeproj 包

PhoneGap 没有为 iOS 加载正确的图标/启动画面

Phonegap - 以度数和磁场为单位的设备方向

Phonegap - 为 Android 应用添加启动画面