合并包含不同目标的两个Xcode项目文件的简便方法(Carbon / Cocoa / PPC / Intel)

时间:2013-04-17 20:02:20

标签: xcode macos photoshop

我们有两个用于Photoshop插件的Xcode项目文件。一个用于PS CS2到CS5 32位,另一个用于CS5 64位和CS6。我不会提到PS Elements等。对于CS和PS 7.0,我们维护一个单独的Codewarrior项目 - 好吧,主要用于今天的运动。

无论如何,CS2的PPC插件和通用二进制插件(PPC / Intel 32位)都是从一个Xcode项目构建的,64位Cocoa UI插件是从另一个Xcode项目构建的。仅仅因为Adobe从未在同一项目文件中提供64位和PPC的示例。他们总是打破SDK中的旧版本支持来修复当前PS的内容。

我们这样做是为了让所有源文件完全可互操作。只有一堆#defines控制我们所处的SDK PC / MAC_CW / MAC_XC / MAC_XC64并且工作正常。所以我的问题是,是否有任何简单的方法来合并两个Xcode项目文件,以便包含所有目标?由于PPC版本,当然只能使用10.6,但我仍然想知道如何做到这一点。

1 个答案:

答案 0 :(得分:1)

在我深入研究合并之前,您可能还需要考虑:使用xcodebuild从命令行以编程方式构建,以自动构建所有单个项目,而不是合并它们,或使用工作区来包含这两个项目。我不确定Workspaces是否是10.6中的一个选项,所以这可能不起作用。

根据您上面的描述(最值得注意的是您在两个项目中都使用了所有相同的文件),我建议您选择一个现有项目,然后只复制现有目标并修改它以适用于您的备用构建要求。

我们过去曾尝试对Xcode文件进行编程和脚本合并,但这通常不值得麻烦,因为Xcode项目文件非常脆弱,并且包含许多复杂的文件引用,这些文件引用并不容易重复。

流程将是:

  1. 打开要用作最终项目的项目文件
  2. 在Project Navigator中选择顶级项目(应使项目显示在主区域
  3. 选择您当前的目标
  4. 选择编辑>重复
  5. 使用新目标,根据需要调整设置,特别注意:产品名称,部署目标等。
  6. 从“构建阶段”选项卡
  7. 中的链接对象列表中删除此平台不需要的库
  8. 使用文件>将其他库添加到项目中添加文件...
  9. 将库添加到Target的Build Phases(链接)
  10. 这会有点单调乏味,但它会比以编程方式执行此操作更好。