встроить фреймворк в связку и связать его - PullRequest
1 голос
/ 06 июля 2019

У меня есть приложение MacOS, и я добавил фреймворк (назовем его A.framework, который является папкой) во «встроенные двоичные файлы», который также отображается в «Связанных фреймворках и библиотеках». Проект компилируется и работает нормально.

Но когда я копирую комплект приложений на другой MacBook, он не запускается и сообщает, что не может найти вторую платформу (назовем ее B.framework) для загрузки. A.framework ссылается на B.framework с абсолютным путем, поэтому даже если я изменю имя установки на A.framework, он все равно будет искать B.framework с использованием абсолютного пути. Есть ли способ изменить это в A.framework? У меня нет исходного кода для A.framework.

Я использовал инструмент otool для двоичного файла и обнаружил, что он НЕ связывает инфраструктуру в комплекте (в комплекте есть копия инфраструктуры, встроенная в пакет). Компоновщик по-прежнему указывает на то, куда была скопирована инфраструктура по заданному пути «встроенные двоичные файлы», что является абсолютным путем на моей машине разработки.

Как сделать так, чтобы он указывал на B.framework внутри пакета?

Спасибо!

1 Ответ

0 голосов
/ 07 июля 2019

Найдите install_tool_path в инструментах разработчика и примените флаг -change к A.framework, но я не уверен, не нарушит ли это подпись кода этой платформы.В любом случае, прочитайте doc.qt.io/archives/qt-5.11/osx-deployment.html.Они показывают, как использовать этот инструмент для изменения путей в связках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...