我可以edit a plist programatically但我想每次会议修改plist,我希望有更好的方法来完成我想要做的事情。这就是我希望实现的目标
当_DEV
定义(#define _DEV
)时,我希望更改以下plist变量:
NSAllowsArbitraryLoads
从NO
到YES
原因是因为我们的开发服务器没有https
证书,但是如果未定义_DEV
,我希望该应用仅允许https
次活动。
截至目前,我手动必须在我的plist中更改此值,这很好,但我更喜欢让它变得动态。是修改plist的唯一方法还是在运行时更改此值的另一种方法是什么?
答案 0 :(得分:4)
您可以使用运行脚本和用户定义属性来切换适用于不同构建配置的App Transport Security(调试,发布,...)。
#!/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
请注意,运行脚本会修改已创建构建的目标文件夹中的Info.plist
文件。这意味着您的本地项目保持不变。