我制作了这个脚本来自动增加每次构建的构建号:
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $INFOPLIST_FILE)
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" $INFOPLIST_FILE
我在"复制捆绑资源"之前的构建阶段插入了它。我得到一个错误说:
命令/bin/sh失败,退出代码为1/Users/ricardodelfingarcia/Library/Developer/Xcode/DerivedData/Flat_Wars-bhkfhubvxegpazcnccswodoejxeo/Build/Inmediates/FlatWars.build/Dubug-iphoneos/FlatWars.build/Script-B6B328B815AA6F9900C26C37.sh:第4行:文件没有存在,将创建:平面无效参数+1.0:语法错误:算术运算符无效(错误标记为"不存在,将创建:平面无效参数+1.0")分析错误:引号值未闭合设置命令所需
问题出在哪里?
问题是您的目录名中有空间。
这将起作用:
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
语法错误:无效的算术。。。告诉你,这是错误所在的第二行。所以只需单独运行第二行并返回$buildNumber,你就会看到为什么PlistBuddy命令不起作用,以及为什么它会给你错误"…不存在,将创建:平面…"
检查您的Info.plist中是否存在CFBundleVersion
。
如果不存在,脚本将无法创建CFBundleVersion
,并且它将停止工作。只需在Info.plist中添加CFBundleVersion
,脚本就会更新它。