Ссылка на двоичные файлы с библиотеками VS Embed Frameworks

Какая разница в фазах сборки между помещением фреймворка в "Link binary with libraries" или в "Embed frameworks"?

Ответ 1

Связать двоичный файл с библиотеками Структуры ссылок и библиотеки с объектными файлами проектов для создания двоичного файла. Вы можете связать исходные файлы целей с библиотеками в целевых активных SDK или с внешними библиотеками.

Вставить рамки Вы можете создать встроенную инфраструктуру для совместного использования кода между вашим расширением приложения и содержащим его приложением.

-

Временная шкала (Посмотрите на это предложение) - "Если ваше приложение содержит ссылки для встроенной инфраструктуры, оно должно включать в себя архитектуру arm64 или будет отклонено в App Store."

Ответ 2

Я искал некоторые ответы здесь и там и хотел бы изменить это изучение, если кто-то снова столкнется с этим вопросом.

В любом случае, если мы хотим использовать какой-либо из ресурсов фреймворка (то есть API), нам нужно сослаться на него. В этом случае нам нужно добавить его в раздел "Связанные фреймворки и библиотеки" в нижней части общих настроек цели.

Если мы встраиваем библиотеку, мы отправляем библиотеку - как она есть - с нашим комплектом приложений. Это может быть удобно, например на компьютерах, работающих под управлением macOS, у которых, конечно, нет специальной сторонней библиотеки.

Итак, что насчет iOS? По сути, нет никакой возможности установить сторонние библиотеки на устройство iOS - плюс Apple очень строга в отношении толстых фреймворков (библиотек, созданных для нескольких платформ). Так должен ли быть способ доставки библиотек в любом случае? Так как для пользователя нашего приложения недостаточно просто связать их, какие еще у нас есть возможности?

Это где особая фаза сборки вступает в игру. В настройках проекта в разделе Фазы сборки есть ссылка на бинарный раздел с библиотеками. Этот шаг удаляет ненужные части из толстых платформ и оставляет необходимые части вместе с пакетом, чтобы он мог работать на устройстве, которое не зависит от зависимостей приложения.

Ответ 3

Для приложения target

  • Static Library - Link
  • Static Framework - Link
  • Dynamic Framework - Embed

Как это устроено