Объединяемая библиотека бета-версии 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 .