bash脚本返回Shell脚本调用错误
我有此脚本做出自动增量上构造每个版本号:bash脚本返回Shell脚本调用错误
#!/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的,但它给了我一个Shell Script Invocation Error
说:
Command /bin/sh failed with exit code 1
所以我抬头做什么,我发现改变壳牌/bin/bash
可以修复它。我这样做,我仍然有同样的错误。它仍然告诉我,Command /bin/sh failed with exit code 1
。为什么它仍然告诉我,如果/ bin/sh不存在,我有一个错误?
我知道这个问题已经过了一年半了,但是当搜索这个问题时,这个问题出现在搜索结果的顶部。我发现了一个我想分享的不同修正:
这里是我在使用plistbuddy脚本时收到的错误细节(我认为这与OP看到的错误一样)。
Set: Entry, ":CFBundleBuildVersionString", Does Not Exist
File Doesn't Exist, Will Create: /Users/*YourFilePathHere/YourAppName*.app/Info.plist
Set: Entry, ":CFBundleBuildDateVersionString", Does Not Exist
Command /bin/sh failed with exit code 1
我试图clean
和删除Derived Data
没有成功。原来的实际解决方案非常简单。我发现在build
期间,脚本试图在plist
实际由Xcode生成之前将生成的值添加到plist
。
Targets > Build Phases > Extra Version Data
是有这个脚本运行。 但是Targets > Build Phases > Copy Bundle Resources
是生成plist
的地方。
单击并拖动Extra Version Data
,使后Copy Bundle Resources
因此,plist
建造之前的脚本试图增加所产生的价值就变成上市。
然后build
和用啤酒快乐。
(使用的Xcode 5.1)
我刚刚遇到了这个问题,发现我的INFOPLIST_FILE的文件名中有一个空格,用于创建一个新的目标和附加后缀'copy'的XCode。似乎PlistBuddy无法像创建此脚本一样处理该空间。
一旦我将文件重命名为没有空格并更新了名称以匹配构建设置,此错误就消失了。
我只是碰到了类似的问题使用新型面料Cocoapod与我的Xcode项目后。
我不得不改变织物脚本: ${PODS_ROOT}/Fabric/Fabric.framework/run ...
到: "${PODS_ROOT}/Fabric/Fabric.framework/run" ...
因为我有领导到我的CocoaPods根位置的目录的一个名称空间:
~/Documents/My Directory Name/My_Xcode_Project_Directory/
同样的问题也发生在我身上。 删除衍生数据然后清理并构建正在解决该问题。