ios - xcconfig 文件中的 info.plist 键名

标签 ios xcode info.plist xcconfig

我正在尝试在我的应用程序中采用 iOS9 ATS 支持。
为此,以下代码肯定会起作用

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>YOURHOST.COM</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>1.0</string>
            <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
   </dict>
</dict>

但这里的问题是我已经定义了 server URLxcconfig file这对于开发和分发环境是不同的。

所以,这里的问题是我想从 xcconfig 文件中获取服务器 URL,它将作为键名代替 'YOURHOST.COM'。在上面的代码中。

因此,当我尝试将服务器 URL 获取为
${SERVER_URL} ,我得到以下错误
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
这显然意味着没有正确取键名,另一方面,如果我在这里直接设置键值,则可以正常工作。

我的 xcconfig file包含以下代码:
SERVER_URL=myserverUrl.com

我无法设置必须直接从 xcconfig 文件中获取的 key 名称。

我怎样才能做到这一点?

最佳答案

您可以为 plist 文件启用预处理。

这帮助我处理它:
http://ilya.puchka.me/info-plist-preprocessing/

1)启用build设置->“预处理Info.plist文件”

2)在“Info.plist Preprocessor Definition”中添加你的预处理器定义(因为你也可以在你的xcconfig中定义它)

INFOPLIST_PREPROCESSOR_DEFINITIONS = $(inherited) CONFIG_DOMAIN=$(SERVER_URL)

3) 如果您在 plist 中使用 URL,请在“Info.plist Other Preprocessor Flags”中添加“-traditional”(参见 https://developer.apple.com/library/mac/technotes/tn2175/_index.html#//apple_ref/doc/uid/DTS10004415-CH1-TNTAG3)

对于预处理 Info.plist 的其他问题,您可以在此处获得一些帮助
Xcode "Cannot parse contents of Info.plist"

现在您可以使用预处理定义作为 plist 中的键
<key>CONFIG_DOMAIN</key>

关于ios - xcconfig 文件中的 info.plist 键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32865565/

相关文章:

ios - 有没有办法将语音处理io音频单元路由到蓝牙设备?

iphone - cocos2d 的默认必需设备功能

macos - 如何在不先启动的情况下将文件类型与 MacOS X App 关联?

ios - EXC_BAD_ACCESS 指向函数头

ios - 没有找到合适的申请记录。验证应用程序时 - 初学者

Mac 上 xcode 的 C++ bool 逻辑语法

ios - 在 Info.plist 中,我已经添加了 NSSpeechRecognitionUsageDescription 和字符串。但仍然显示相同的错误

ios - 使用 AVPlayer 流式传输音频

ios - 按键将 NSArray 分成排序的组

ios - iphone自动引用计数for iOS 4.3版