我有一个 Xcode 项目,其中包含 Cocoa 应用程序目标和 shell 工具目标。这些项目共享一个核心数据持久存储,因此我希望这两个项目使用相同的 *.mom 文件。
为了允许这一点并简化部署,我希望将终端应用程序放置在 Cocoa 应用程序包内,然后让两个可执行文件从包内访问相同的 *.mom 文件。
是否可以设置 Xcode 项目,以便将终端应用程序放置在 Cocoa 应用程序包中,然后让终端应用程序加载 Cocoa 应用程序的主包以获取此共享 *.mom 的路径?
最佳答案
你应该能够做你想做的事。
使 Cocoa 应用程序目标依赖于终端应用程序目标:单击 Cocoa 目标、获取信息、常规选项卡,然后单击“直接依赖关系” Pane 下的“+”,然后选择终端目标。
向 Cocoa 目标添加“复制文件”构建阶段:右键单击目标,添加 -> 新建构建阶段 -> 新建复制文件构建阶段。您将看到一个信息窗口,您可以在其中选择副本的目的地;我推荐“资源”,默认值。
将终端应用程序构建产品(从项目导航 Pane 中的“产品”文件夹)拖到您刚刚创建的复制文件构建阶段。这将导致终端应用程序被复制到 Cocoa 应用程序的资源文件夹中,这是您的 .mom 文件在构建时默认所在的位置。
在 Cocoa 代码中,您可以通过在主包中查询带有终端应用程序名称和扩展名的资源路径来找到终端应用程序的路径或 URL。您的终端应用程序需要发现启动它的目录,才能在同一目录中找到 .mom 文件。
希望这对您有所帮助。
关于Xcode:同一包中的多个目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735552/