加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Xcode脚本 – 从构建设置而不是info.plist获取Bundle ID

发布时间:2020-12-14 19:32:17 所属栏目:百科 来源:网络整理
导读:我正在使用Receigen进行Apple收据检查. 我在构建过程中集成了一个脚本,为我的项目生成适当的文件: # Receigen binaryRECEIGEN="/Applications/Receigen.app/Contents/MacOS/Receigen"# Extract Info.plist informationINPUT="$INFOPLIST_FILE"BUNDLE_ID=`/u
我正在使用Receigen进行Apple收据检查.
我在构建过程中集成了一个脚本,为我的项目生成适当的文件:

# 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的问题在于这一行:

BUNDLE_ID=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" "$INPUT"`

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

有没有办法从脚本的构建设置中提取Bundle Id?

解决方法

您只需使用$PRODUCT_BUNDLE_IDENTIFIER而不是对包ID进行硬编码:

EXPANDED_BUNDLE_ID=$PRODUCT_BUNDLE_IDENTIFIER

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读