Raf*_*bre 48
我的解决方案是将ATS禁用选项保持为默认NO值,并在构建应用程序时添加新的运行脚本阶段以在应用程序包的Info.plist中更改它.
这是脚本:
#Disables ATS in debug builds.
INFOPLIST="${TARGET_BUILD_DIR}"/"${INFOPLIST_PATH}"
case "${CONFIGURATION}" in
"Release"|"Adhoc")
/usr/libexec/PlistBuddy -c "Set :NSAppTransportSecurity:NSAllowsArbitraryLoads NO" "${INFOPLIST}"
;;
"Debug")
/usr/libexec/PlistBuddy -c "Set :NSAppTransportSecurity:NSAllowsArbitraryLoads YES" "${INFOPLIST}"
;; 
esac
另一种方法.通过使用INFOPLIST_PREPROCESS = YES和INFOPLIST_PREPROCESSOR_DEFINITIONS = DEBUG=1,
它可以是使用#ifdef或#if直接在Info.plist中使用C代码的条件预处理.
<key>UIMainStoryboardFile</key>
<string>Main</string>
#if DEBUG
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
#endif
<key>UIRequiredDeviceCapabilities</key>
<array>
缺点:无法打开Xcode的属性列表编辑器,因为它不是格式良好的XML :(
是的,您可以配置您的项目设置以使用不同的 Info.plist 文件进行调试、发布或您在项目中使用的任何配置(类似于设置配置文件的方式),因此在您的调试 plist 中您可以完全禁用 ATS。
转到项目 -> 你的目标 -> 构建设置 -> Info.plist 文件
| 归档时间: | 
 | 
| 查看次数: | 4748 次 | 
| 最近记录: |