1

我有一个 Xcode 项目P2,它是我有另一个项目P1的工作区的一部分。

当我构建P1时,它会创建一个 Cocoa Touch 框架。在P2中,我通过转到 General-->Link Frameworks and Libraries-->Select P1.framework 添加了 P1 创建的框架。

然后我构建了P2项目,它使用集成的P1.framework成功编译。所以,这一切都很好。

现在,我没有打开工作区并从工作区构建P2项目,而是通过单击文件直接打开P2项目。p2.xcodeproj我可以看到里面的p1.framework文件。

但是,现在当我尝试构建P2时,它给出了错误:

未找到框架 P1。clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)。

谁能帮我理解为什么直接从文件打开P2会出错?p2.xcodeproj

4

1 回答 1

2

为了p1.framework能够正确链接,p1.framework引用的项目必须是可见的。

这可能是因为您最初使用标准 Xcode UIp1.frameworkP1工作区中的项目中选择。Xcode 不直接引用,p1.framework而是通过P1项目引用。这很有用,因为它允许您随心所欲地进行修改P1(更改构建目标等),并且允许其他项目使用p1.framework.

一个更简单的类比可能是考虑文件夹别名。这就像您通过文件夹别名引用文件,然后删除该文件夹。自然会出现错误。

于 2016-04-22T15:37:22.803 回答