1
Xcode项目的Info.plist中的包标识符可能有多种形式,例如,使用shell脚本在XCode项目中查找包标识符
- com.company $(PRODUCT_NAME:rfc1034identifier)
- $(PRODUCT_BUNDLE_IDENTIFIER)
- 有人可以设计自己的产品捆绑标识符调试,发布版本的等等类型和编写针对捆绑标识符的变量,例如$(PRODUCTRUDOMVIDiable)。$(someRandomVariable)
我想写一个shell脚本,它只是正确读取包标识符。但是,如果你只知道shell脚本 - 我知道,如何找出$()中变量的值,但想要一个shell脚本应该给我所有这样的变量在字符串中,然后我将代码找出他们的值,发布后我将创建字符串与变量替换为值。
function getBundleIdentifier
{
cfBundleIdentifier=${PRODUCT_BUNDLE_IDENTIFIER}
if [ ${#cfBundleIdentifier} -lt 1 ]; then
SOURCE="rfc1034identifier"
cfBundleIdentifier=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${PROJECT_DIR}/${INFOPLIST_FILE}")
if echo "$cfBundleIdentifier" | grep -q "$SOURCE"; then
echo `eval echo $cfBundleIdentifier``eval echo ${PRODUCT_NAME:rfc1034identifier}`
else
echo `eval echo $cfBundleIdentifier`
fi
else
echo $cfBundleIdentifier
fi
}
这是我写的,但它不包括所有的情况。