首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode脚本-从构建设置获得绑定ID,而不是info.plist

Xcode脚本-从构建设置获得绑定ID,而不是info.plist
EN

Stack Overflow用户
提问于 2015-09-07 21:09:25
回答 3查看 3.6K关注 0票数 8

我用Receigen来检查苹果的收据。我已经在构建过程中集成了一个脚本,为我的项目生成适当的文件:

代码语言:javascript
复制
    # Receigen binary
RECEIGEN="/Applications/Receigen.app/Contents/MacOS/Receigen"

# Extract Info.plist information
INPUT="$INFOPLIST_FILE"
BUNDLE_ID=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" "$INPUT"`
BUNDLE_VERSION=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INPUT"`

# Expand information if needed
EXPANDED_BUNDLE_ID=`eval "echo $BUNDLE_ID"`
EXPANDED_BUNDLE_VERSION=`eval "echo $BUNDLE_VERSION"`

# Make sure the destination directory exists
mkdir -p "$DERIVED_FILES_DIR"
HEADER="$DERIVED_FILES_DIR/receiptCheck.h"

# Check if the generation is needed
if [ -e "$HEADER" ]; then
SKIP=`grep -q "$EXPANDED_BUNDLE_ID" "$HEADER" && grep -q "$EXPANDED_BUNDLE_VERSION" "$HEADER" && echo "YES"`
fi

# Generate the header file if needed
if [ "x$SKIP" = "x" ]; then
"$RECEIGEN" --identifier "$EXPANDED_BUNDLE_ID" --version "$EXPANDED_BUNDLE_VERSION" --failure 'exitwith173' --success 'runapplication' --os osx > "$HEADER"
fi

Xcode 7的问题在于这一行:

代码语言:javascript
复制
BUNDLE_ID=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" "$INPUT"`

因为新Xcode上的BundleID是在构建设置上而不是Info.plist上,所以我认为构建设置上的键是$(PRODUCT_BUNDLE_IDENTIFIER)

是否有方法从脚本上的构建设置中提取绑定Id?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-23 17:57:33

您可以只使用$PRODUCT_BUNDLE_IDENTIFIER而不是硬编码包id:

代码语言:javascript
复制
EXPANDED_BUNDLE_ID=$PRODUCT_BUNDLE_IDENTIFIER

(请注意,PRODUCT_BUNDLE_IDENTIFIER周围没有括号)。

然后,您可以删除以BUNDLE_ID=开头的行,因为它不再必要。

票数 7
EN

Stack Overflow用户

发布于 2017-07-19 10:01:01

这很简单:

BUNDLE_ID= xcodebuild -showBuildSettings | grep PRODUCT_BUNDLE_IDENTIFIER

回波$BUNDLE_ID

票数 3
EN

Stack Overflow用户

发布于 2015-09-21 22:53:43

我也有同样的问题。有个办法可以解决这个问题。在脚本中,替换:

EXPANDED_BUNDLE_ID=eval "echo $BUNDLE_ID"

使用

EXPANDED_BUNDLE_ID='com.foo.bar'

其中com.foo.bar是我的产品包标识符。这至少让Receigen编译,这样我就可以继续工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32446065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档