通过运行时修改 NSAllowsArbitraryLoads 值

Jac*_*nkr 1 xcode objective-c

我可以以编程方式编辑 plist,但我只想在每个会话中修改 plist,我希望有更好的方法来完成我想做的事情。这是我希望完成的

_DEV定义#define _DEV)我想下面的plist变量的变化:

NSAllowsArbitraryLoadsNOYES

原因是因为我们的开发服务器没有https证书,但是当_DEV没有定义时,我希望应用程序只允许https活动。

到目前为止,我必须手动更改我的 plist 中的这个值,这很好,但我更希望它是动态的。是修改 plist 的唯一方法还是在运行时更改此值的另一种方法?

小智 5

您可以使用运行脚本和用户定义的属性为不同的构建配置(调试、发布等)切换应用传输安全。

#!/bin/bash

if [ $XYZDisableAppTransportSecurity == YES ]; then

echo "Disabling App Transport Security..."

TARGET_INFOPLIST_PATH="${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"

$(/usr/libexec/PlistBuddy -c "Delete NSAppTransportSecurity" "${TARGET_INFOPLIST_PATH}" 2> /dev/null)
/usr/libexec/Plistbuddy -c "Add :NSAppTransportSecurity:NSAllowsArbitraryLoads bool true" "${TARGET_INFOPLIST_PATH}"

fi
Run Code Online (Sandbox Code Playgroud)

请注意,运行脚本会修改Info.plist所创建构建的目标文件夹中的文件。这意味着您的本地项目保持不变。