嵌入框架并将其链接

时间:2019-07-06 04:27:07

标签: xcode macos frameworks

我有一个MacOS应用程序,我在“嵌入式​​二进制文件”中添加了一个框架(简称为{% url '...' id %},它是一个文件夹),该框架也显示在“链接的框架和库”中。该项目可以编译并正常运行。

但是,当我将应用程序包复制到另一台MacBook时,它无法运行,并告诉我它找不到要加载的第二个框架(我们称之为A.framework)。 B.framework使用绝对路径链接到A.framework,因此即使我更改了B.framework的安装名称,它仍会使用绝对路径查找A.framework。我有办法在B.framework中进行更改吗?我没有A.framework的源代码。

我在二进制文件上使用了A.framework工具,发现它没有链接捆绑软件中的框架(捆绑软件具有嵌入在捆绑软件中的框架的副本)。链接器仍然指向通过“嵌入式二进制”路径设置的框架复制位置,这是我的开发机器上的绝对路径。

如何使其指向捆绑包内的otool

谢谢!

1 个答案:

答案 0 :(得分:0)

在开发人员工具中寻找install_tool_path并将-change标志应用于A.framework,但是我不确定这是否不会破坏该框架的代码签名。无论如何,请阅读doc.qt.io/archives/qt-5.11/osx-deployment.html。他们展示了如何使用此工具更改分发包中的路径。