我正在尝试更改单元测试的各种属性,以便在实际运行应用程序时注入的已知设置不会干扰各种设置(特别是钥匙串,但也可能是捆绑标识符)
(我设想这样做的方式是根据plist 中kSecAttrAccessGroup
的条目使用不同的单元测试。)KeyChainService
我还打算将此脚本与AppCode
.
问题是我找不到任何地方放置脚本(或任何变量),这将在任何测试阶段之前发生的构建阶段覆盖正常的预操作脚本。
我的 bash 脚本如下:
plist="${PROJECT_DIR}/${INFOPLIST_FILE}"
if [[ "${plist}" == "/" ]]; then
# AppCode (no variables set)
plist=./myProject-Info.plist
fi
if [[ -z "$csKeyChain" ]]; then
csKeyChain=RUN
fi
if [[ -z "$bundleIdentifier" ]]; then
bundleIdentifier=com.mycompany.abc
fi
echo "Setting KeyChainService to $csKeyChain; CFBundleIdentifier to $bundleIdentifier" > ~/BUILD.txt
/usr/libexec/Plistbuddy -c "Set KeyChainService $csKeyChain" "${plist}"
/usr/libexec/Plistbuddy -c "Set CFBundleIdentifier $bundleIdentifier" "${plist}"