【发布时间】:2019-11-16 13:40:35
【问题描述】:
我有一个 MacOS 应用程序,我在“嵌入式二进制文件”中添加了一个框架(我们称之为 A.framework,它是一个文件夹),它也显示在“链接框架和库”中。该项目编译并运行良好。
但是当我将应用程序包复制到另一台 MacBook 时,它没有运行并告诉我它找不到第二个框架(我们称之为 B.framework)来加载。 A.framework 使用绝对路径链接到 B.framework,因此即使我将安装名称更改为 A.framework,它仍然会使用绝对路径查找 B.framework。我有办法在A.framework 中更改它吗?我没有A.framework 的源代码。
我在二进制文件上使用了otool 工具,发现它没有在包中链接框架(包中嵌入了框架的副本)。链接器仍然指向通过“嵌入式二进制文件”路径设置的框架被复制到的位置,这是我的开发机器上的绝对路径。
如何使它指向包内的B.framework?
谢谢!
【问题讨论】:
-
您需要更好地解释您是如何复制您的 app bundle 以及如何构建您的 app bundle。不知道这一点,很难帮助你。
-
我发现 - 一个框架 (A) 使用绝对路径链接到另一个框架 (B)。所以即使我更改了 A 的安装名称,它仍然看起来是使用绝对路径的框架 B。有没有办法在框架 A 中改变它?我没有框架 A 的源代码。
-
如何将其作为可接受的答案?非常感谢 Jvarela!
-
我会将评论转为正式答案,但我认为您应该使用澄清问题的评论编辑您的问题,以便其他有相同问题的人可以从中受益。
-
我编辑了您的问题以使其更清晰。让我们看看我的编辑是否被批准。很高兴我能帮上忙。
标签: xcode macos frameworks