Объединяемая библиотека бета-версии XCode 15

XCode 15 поставляется с чем-то под названиемmergeable library, где сборки выпуска, имеющие прямую зависимость от dylibs или фреймворка,mergedв окончательный исполняемый файл (если проект настроен правильно), см. здесь .

У меня есть настроенный проект XCode 15 с двумя целями: одна — динамическая библиотека, а другая — двоичный файл командной строки, последний зависит от первого (библиотека — это целевая зависимость, и она указана вLink binary with librariesвещь подBuild Phases), также:

  • В библиотеке настроена опцияBuild Mergeable Libraryустановите ДА
  • Бинарный файл был настроен с помощьюCreate Merged Binaryустановлен вAutomatic

Тем не менее, ничего не объединяется, и двоичный файл не работает, если он недоступен, я бы предположил, что это означаетmergingв двоичный код, но, возможно, и нет.

А еще библиотека, гдеmergeопция была включена, в ней должны быть какие-то дополнительные метаданные, но в моем случае включение/выключение этой опции, похоже, ничего не добавляет/удаляет из*.dylib(по крайней мере, согласно vimdiff..)

Кто-нибудь пробовал это и может заставить это работать?

1 ответ

Я думаю, это должно работать, по крайней мере, для вашей первой зависимости, которая является прямой зависимостью.

Когда вы говорите, что ваша зависимость — это «динамическая библиотека», я считаю, что это динамическая структура? и слияние происходит в режиме выпуска. Чтобы проверить, объединяется ваша зависимость или нет, вы можете проверить символы в основном двоичном файле приложения.

Бегатьnm -j //path-to-app-binary | grep <any-class-from-your-dependency>, это должно показать некоторые результаты.

если вам нужна более подробная информация, вы можете ознакомиться с моей статьей по этому поводу — https://medium.com/@SanjuNaik14/meet-mergeable-libraries-790a40aa89b8 .

Другие вопросы по тегам