通过运行时修改NSAllowsArbitraryLoads值

时间:2015-08-29 19:21:07

标签: objective-c xcode

我可以edit a plist programatically但我想每次会议修改plist,我希望有更好的方法来完成我想要做的事情。这就是我希望实现的目标

_DEV 定义#define _DEV)时,我希望更改以下plist变量:

NSAllowsArbitraryLoadsNOYES

原因是因为我们的开发服务器没有https证书,但是如果未定义_DEV,我希望该应用仅允许https次活动。

截至目前,我手动必须在我的plist中更改此值,这很好,但我更喜欢让它变得动态。是修改plist的唯一方法还是在运行时更改此值的另一种方法是什么?

1 个答案:

答案 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文件。这意味着您的本地项目保持不变。