2013-03-09 80 views
1

问题

我试图添加预开启shell脚本,可以打开/关闭我的.pch文件中的某些定义,具体取决于我正在构建的内容。Xcode预操作脚本不工作?

但是,在运行构建时,没有任何反应。我不是一个流利的shell脚本,所以解决方案可能是我的语法不正确,但Xcode不会告诉我任何东西。

详细

下面是一些代码:

prefix=${PROJECT_DIR}/${GCC_PREFIX_HEADER} 

sed -i 's/source/working/' $prefix 
sed -i 's/\/\/#define\ HOCKEYAPP_BUILD/#define\ HOCKEYAPP_BUILD' $prefix 
sed -i 's/\/\/#define\ FLURRY_ENABLED/#define\ FLURRY_ENABLED' $prefix 
sed -i 's/\/\/#define\ PRODUCTION_BUILD/#define\ PRODUCTION_BUILD' $prefix 

我加入了第一线,以测试它甚至会删除一个基本的单词,我知道是在.PCH文件。它没有。这使我相信我的道路是无效的。

我已经尝试了.pch文件路径的几个不同变体,并且都失败了,尽管它们都可能是错的。

谢谢您的帮助

+0

为什么不使用例如.pch文件中'''#ifdef DEBUG ...''' – SAE 2013-03-09 18:12:13

+0

请参阅:“将脚本文件添加到Xcode存档”,http://stackoverflow.com/questions/7188704/adding-script-files-to-an-xcode-archive/,尤其是。提及如何使用预执行脚本。 – 2013-03-09 18:29:48

+0

SAE:有时我需要在调试期间打开这些选项,有时候不需要。 – 2013-03-09 18:33:25

回答

1

sed线似乎并不正确。请尝试:

prefix=${PROJECT_DIR}/${GCC_PREFIX_HEADER} 

sed -i -e 's/source/working/' $prefix 
sed -i -e 's/\/\/#define\ HOCKEYAPP_BUILD/#define\ HOCKEYAPP_BUILD/' $prefix 
sed -i -e 's/\/\/#define\ FLURRY_ENABLED/#define\ FLURRY_ENABLED/' $prefix 
sed -i -e 's/\/\/#define\ PRODUCTION_BUILD/#define\ PRODUCTION_BUILD/' $prefix 
+0

这个伎俩! -e到底做了什么? – 2013-03-13 15:00:28

+1

'-e'将以下参数标记为要执行的实际代码。它不是任何'sed'都需要的,但是你在安全的方面使用它。更重要的是在替代术语末尾的结尾斜线:没有斜线,这个术语是不正确的。 – Matthias 2013-03-13 20:13:10