我有一个脚本
和一个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知道在"运行脚本构建阶段"期间所做的源文件更改?
最初我的应用程序的包标识符是默认值
MyCompany.${PRODUCT_NAME:rfc1034identifier}
这与我在开发人员连接上创建的应用程序ID不匹配(产品名称中的空格被转换为连字符)所以我将MyApp-Info.plist中的包标识符硬编码为
com.MyCompany.MyApp
但是,当我记录[NSBundle mainBundle] bundleIdentifier]它仍然返回旧的标识符.清洁目标没有帮助.任何人都可以想到它来自哪里,如果不是Info.plist?
我希望能够有特定的代码块,例如#ifdef SOME_VARIABLE如果项目是在特定用户的计算机上构建的,则变量的值将在项目的构建时填充。
那可能吗?