我有一个脚本
和一个Makefile,它有一个特殊的时间戳文件作为make目标,配置文件作为目标源:
SRC = $(shell find ../config -iname "*.txt")
STAMP = $(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME).stamp
$(STAMP): $(SRC)
python inject.py
touch $(STAMP)
Run Code Online (Sandbox Code Playgroud)
我在项目目标的构建阶段堆栈之上添加了这个Makefile作为"运行脚本构建阶段".
在编译源代码之前运行了脚本构建阶段.
但是,由于脚本在执行期间修改了源代码,因此我需要构建两次以获取最新版本的构建产品.这是我想象中发生的事情:
在阅读Build Phases上的Xcode文档后,我尝试添加一个源文件,这个源文件在每次运行脚本时都会更新,作为"Run Script Build Phases"的输出,但没有任何改变.由于配置文件的数量可能在我的项目中有所不同,我不想指定每个输入和输出文件.
如何让Xcode知道在"运行脚本构建阶段"期间所做的源文件更改?
现在我正在使用一些脚本来生成我在Xcode中作为资源包含的文件.问题是我正在运行脚本,然后从项目中删除,然后重新添加到项目中.必须有一种方法可以自动完成最后一步,这样脚本就可以生成文件并自动将它们添加到xcode项目中.
我正在使用bash,但任何语言示例都会有所帮助.
谢谢,安德鲁
场景:
我有TargetA,这是一个iOS应用程序.这个应用程序使用静态库,编译TargetB.显然,TargetB是一种依赖TargetA,并且TargetB始终是之前构建的TargetA.到现在为止还挺好.
现在,我希望运行一个脚本TargetA,但是甚至在此之前TargetB.
TargetA.它的工作原理一半:Xcode的运行setup,并TargetB在同一时间,因此TargetB可能会过早地建造.还不够好.pre-action在方案内部的构建步骤中运行脚本.这可行,但似乎错了(为什么?从该步骤输出不会进入构建日志;所以也许我不打算以这种方式使用它?).添加脚本作为依赖项TargetB.这会奏效; 然而,TargetB实际上来自另一个子项目,并且在构建它的上下文中,脚本的参数尚不清楚(主要TargetA是项目的根目录).
我错过了什么,还是我必须满足于#2或#3以上?
编辑:在上面的选项#2中,改变依赖的顺序(在我的情况下,之间Setup和TargetB没有帮助 - Xcode仍然任意选择顺序.