我在构建过程中集成了一个脚本,为我的项目生成适当的文件:
# Receigen binaryRECEIGEN="/Applications/Receigen.app/Contents/MacOS/Receigen"# Extract Info.pList informationinput="$INFOPList_file"BUNDLE_ID=`/usr/libexec/PListBuddy -c "Print CFBundleIDentifIEr" "$input"`BUNDLE_VERSION=`/usr/libexec/PListBuddy -c "Print CFBundleShortVersionString" "$input"`# Expand information if neededEXPANDED_BUNDLE_ID=`eval "echo $BUNDLE_ID"`EXPANDED_BUNDLE_VERSION=`eval "echo $BUNDLE_VERSION"`# Make sure the destination directory existsmkdir -p "$DERIVED_fileS_DIR"header="$DERIVED_fileS_DIR/receiptCheck.h"# Check if the generation is neededif [ -e "$header" ]; thenSKIP=`grep -q "$EXPANDED_BUNDLE_ID" "$header" && grep -q "$EXPANDED_BUNDLE_VERSION" "$header" && echo "YES"`fi# Generate the header file if neededif [ "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 =开头的行,因为不再需要它.
总结以上是内存溢出为你收集整理的Xcode脚本 – 从构建设置而不是info.plist获取Bundle ID全部内容,希望文章能够帮你解决Xcode脚本 – 从构建设置而不是info.plist获取Bundle ID所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)