2

我有一个项目正在使用我创建的 2 个静态库,我们称它们为 libraryA 和 libraryB 以及一个 Bundle。

主项目使用 libraryA、libraryB 和 bundle,libraryA 也调用 libraryB 和 bundle。

每个静态库、包和主项目都是通过在 Xcode 中启动一个新项目来创建的。最后一个要创建的项目是 MyProject.xcodeproj。创建该项目后,我将 libraryA.xcodeproj、libraryB.xcodeproj 和 myBundle.xcodeproj 拖到其中并以如下方式结束:

在此处输入图像描述

一切都很好地编译和运行,但在 MyProject.app 中检查,我发现它不包含 myBundle 中的资源文件。是的,myBundle.bundle 处于 MyProject 的“复制包资源”阶段以及目标依赖项上。

顺便说一句,请解释我应该如何为这个项目的所有部分设置构建阶段的“目标依赖项”、“将二进制文件与库链接”和“复制捆绑资源”部分,以便最终的应用程序包含所有内容。

谢谢。

4

1 回答 1

1

Target Dependencies 仅表示在当前目标构建之前将首先执行哪些其他目标。如果您想在编译主项目之前对库和捆绑包进行更改,请确保包含这些目标中的每一个。如果您从依赖项中删除它们,该项目仍然可以正常构建,当您想要添加更改时,您只需要手动构建库的项目。

与二进制库的链接应该同时显示 libraryA 和 B。它将引用该库的最新构建版本,因此结合目标依赖项,您的 MyProject 应用程序将拥有对您的库的所有最新更改。

如果您的 MyProject 应用程序运行良好,那么您可能做的一切都正确。如果您可以引用静态库中的类而不会出现链接器错误,那么这些类已正确链接。如果来自 myBundle 的资源显示在应用程序的 UI 中,那么它也被正确复制。

如果您缺少捆绑包中的文件,请查看您的 MyBundle 项目并确保其 Copy Bundle Resources 部分显示您想要包含的文件。

于 2013-04-18T23:54:47.883 回答