iOS项目上的命令脚本问题

时间:2016-02-02 16:34:06

标签: ios iphone xcode

我得到一个我想用XCode编译的iOS项目 当我构建它时,我收到以下错误:

(!)Run custom shell script 'Get App Version'
 _________________________________________________________________
| PhaseScriptExecution Get\ App\ Version /Users........./Script-  9AAC7B315646546DC5.sh
| cd ....
| export ....
| ....
| long scripts
| .... 
|_________________________________________________________________
sed: 1: "s/CURRENT_VERSION/There ...": unescaped newline inside subtitute pattern
Command /bin/sh failed with exit code 1.

在我去Target的项目中>构建阶段没有运行脚本阶段。

修改
我在“构建阶段”中找到了“脚本”。 > '获取应用版本'

Shell: /bin/sh
Version='agvtool vers -terse'
sed -e "s/CURRENT_VERSION/$Version/g" Resources/App/version.h.tpl > GeneratedFiles/version.h

如果我添加echo $Version,我会收到以下内容

There are multiple projects in this directory. agvtool does not work with multiple projects in the same directory. agvtool - Apple-generic versioning tool for Xcode projects usage: agvtool help agvtool what-version | vers [-terse] agvtool [-noscm | -usecvs | -usesvn] next-version | bump [-all] agvtool [-noscm | -usecvs | -usesvn] new-version [-all] <versNum> agvtool [-noscm | -usecvs | -usesvn] tag [-force | -F] [-noupdatecheck | -Q] [-baseurlfortag] agvtool what-marketing-version | mvers [-terse | -terse1] agvtool [-noscm | -usecvs | -usesvn] new-marketing-version <versString>
sed: 1: "s/CURRENT_VERSION/There ...": unescaped newline inside substitute pattern
Command /bin/sh failed with exit code 1

3 个答案:

答案 0 :(得分:1)

该脚本可能包含在“构建”方案中,作为“后期行动”或“行动前”。

单击“编辑方案...”,然后单击构建方案中的显示三角形,并检查“预执行”和“后处理”中的条目。

答案 1 :(得分:1)

这是错误:

sed: 1: "s/CURRENT_VERSION/There ...": unescaped newline inside subtitute pattern

我认为问题是>之后的新行。你的脚本应该是3行,而不是4行

Shell: /bin/sh
Version='agvtool vers -terse'
sed -e "s/CURRENT_VERSION/$Version/g" Resources/App/version.h.tpl > GeneratedFiles/version.h

$Version包含\n

<强>代替

您可以完全删除该构建脚本

答案 2 :(得分:0)

我一直磕磕绊绊地遇到这样的问题,所以我将从这个页面上的评论中留下这个有效的答案作为对我自己未来的提醒:

  

发生此问题是因为项目文件夹中有多个项目!

解决方案?删除所有额外的项目,只留下一个你想要运行的项目.xcodeproj