我正在使用一个工作空间,其中有一个主要的应用程序项目和一个静态库项目,主要应用程序使用该静态库。我希望静态库项目将libX.a生成到主应用程序项目目录中,因为我想将这个libX.a推送到我的Git仓库中。
更改静态库项目的构建路径设置应该推送到自己的Git仓库中,以便其他人不必一次又一次地处理这个更改。
我尝试将静态库目标的“构建产品路径”更改为“$(SRCROOT)/../SharedData”,但没有任何效果。
谢谢!
转到文件 -> 项目设置。
在派生数据位置下点击高级按钮。在生成位置中选择自定义并选择您的输出目录。这将更改变量$(BUILD_DIR)为您在该字段中设置的任何内容。
单击完成,然后转到您的目标设置。在生成位置下,现在可以根据$(BUILD_DIR)宏指定目标的输出位置。
更新Xcode 5到6.3的说明。
文件(File)
-> 项目设置(Project settings)
高级(Advanced)
按钮完成(Done)
,然后再次单击 完成(Done)
。完成!
这是一个您可以存入源代码控制的解决方案,并我已经验证它可以在Xcode 6.2上运行。
阅读苹果公司的xcconfig格式参考文献,似乎仅覆盖OBJROOT和SYMROOT在.xcconfig文件中就可以完成此操作——但在我的Xcode 6.2测试中,更改它们没有任何效果。必须更改上面列出的那三个特定环境变量。
以下是我在Xcode 6.2 .xcconfig文件中的设置,以便中间文件和可执行文件进入它们的“传统”位置:
// Intermediate build files go here
PROJECT_TEMP_DIR = $(SRCROOT)/build/$(PROJECT_NAME).build
// Build-related files for the active build configuration go here
CONFIGURATION_BUILD_DIR = $(SRCROOT)/build/$CONFIGURATION
// The final product executables and other build products go here
BUILT_PRODUCTS_DIR = $(SRCROOT)/build/$CONFIGURATION
不要忘记将xcconfig文件添加到“部署目标” - >“配置”中,以使其起作用(单击项目,在“信息”下,在“部署目标”部分下的“配置”中)如果你想修改项目的构建路径,可以按照以下步骤进行更改。
1)选择Xcode >首选项,并单击位置。
2)单击衍生数据设置的高级按钮。
3)从可用选项中选择一个构建位置,然后单击“完成”。
例如,如果你在构建位置选项中选择“自定义”,则你的构建将生成在“/Users/XYZ/Desktop/Build/Products”位置。
大多数在此更改构建位置的答案在构建 macOS 命令行工具与 SPM 依赖项时对我无效。构建失败是因为 Xcode 在错误的位置查找库文件。
在 @Bob Murphy 的答案基础上,您可以在 .xcconfig 文件中指定一个安装位置,在成功构建后将产品复制到该位置。
DEPLOYMENT_LOCATION = YES
并通过 DSTROOT
和 INSTALL_PATH
指定安装位置。INSTALL_PATH
相对于 DSTROOT
,因此产品将被复制到 $DSTROOT/$INSTALL_PATH
。
示例 .xcconfig 文件:
DEPLOYMENT_LOCATION = YES
INSTALL_PATH = .
DSTROOT = $(SRCROOT)/build/
如果已经在其他地方指定了,您可能需要添加SKIP_INSTALL = NO
。
选择性地添加DEPLOYMENT_POSTPROCESSING = YES
也可以通过剥离符号来减小二进制文件的大小。
请注意,理论上应该可以通过覆盖TARGET_BUILD_DIR
直接指定目录,而不是设置DSTROOT
和INSTALL_PATH
,但在我的Xcode 13中由于某种原因无法工作。
A
,我想要将可执行文件放在A/release
目录下,但似乎这种方法行不通;我只能将其放在A/release/Release
目录下。有什么线索吗? - Jorge Leitao