単体テストのさまざまなプロパティを変更して、実際にアプリを実行するときに、注入された既知の設定がさまざまな設定に干渉しないようにしようとしています (具体的にはキーチェーンですが、バンドル識別子も可能性があります)。
(私がこれを行う方法は、plistkSecAttrAccessGroup
のエントリに基づいて単体テストに別のものを使用することです。)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}"