San*_*wal 1 xcode info.plist xcconfig ios
我正在尝试在我的应用中采用 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>
Run Code Online (Sandbox Code Playgroud)
但这里的问题是,我已经定义了server URL在xcconfig 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
Run Code Online (Sandbox Code Playgroud)
我无法设置必须直接从 xcconfig 文件中获取的密钥名称。
我怎样才能做到这一点?
小智 5
您可以为 plist 文件启用预处理。
这帮助我处理它:http : //ilya.puchka.me/info-plist-preprocessing/
1)启用构建设置->“预处理Info.plist文件”
2)在“Info.plist Preprocessor Definition”中添加你的预处理器定义(因为你也可以定义它你的xcconfig)
INFOPLIST_PREPROCESSOR_DEFINITIONS = $(inherited) CONFIG_DOMAIN=$(SERVER_URL)
Run Code Online (Sandbox Code Playgroud)
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“无法解析 Info.plist 的内容”
现在您可以使用预处理定义作为 plist 中的键
<key>CONFIG_DOMAIN</key>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |