使用shell脚本在XCode项目中查找包标识符

时间:2016-11-04 09:51:54

标签: ios xcode shell

Xcode项目的Info.plist中的Bundle标识符可以有各种形式,例如

  1. com.company $(PRODUCT_NAME:rfc1034identifier)
  2. $(PRODUCT_BUNDLE_IDENTIFIER)
  3. 有人可以为调试,发布等类型的构建设计自己的产品包标识符,并针对Bundle标识符编写变量,例如: com.company $(PRODUCT_NAME:rfc1034identifier)。$(someRandomVariable)
  4. 我想写一个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
    }
    

    这是我所写的内容,但并未涵盖所有案例。

1 个答案:

答案 0 :(得分:3)

这很简单,只需运行此命令:

BUNDLE_ID=`xcodebuild -showBuildSettings | grep PRODUCT_BUNDLE_IDENTIFIER`

echo $BUNDLE_ID