Я использую Alamofire в проекте Swift, и часть их инструкций по ручной установке заключается в том, чтобы добавить Alamofire в Embedded Binaries в Общие для моей целевой задачи.
Что такое встроенные двоичные файлы?
Я использую Alamofire в проекте Swift, и часть их инструкций по ручной установке заключается в том, чтобы добавить Alamofire в Embedded Binaries в Общие для моей целевой задачи.
Что такое встроенные двоичные файлы?
Встроенные двоичные файлы - это двоичные файлы, которые копируются в ваш пакет приложений при создании проекта. Используйте встроенные двоичные файлы, когда ваше приложение использует сторонние структуры, чтобы люди могли использовать ваше приложение, не требуя этих фреймворков, установленных на их машине. Встроенные двоичные файлы не позволяют пользователям вручную устанавливать сторонние фреймворки. Ваше приложение использует встроенную фреймворк.
В вашем примере Alamofire ваше приложение опирается на Alamofire. Если вы не встраиваете рамки Alamofire, никто не сможет использовать ваше приложение, если они не установили вручную Alamofire. Встраивая Alamofire с вашим приложением, каждый может запустить ваше приложение.
"Двоичный" означает: скомпилированный код - в отличие от "исходного кода", с которым вы работаете, когда пишете текст в виде текста.
Они могли бы дать вам исходный код и позволить вам скомпилировать его, но они этого не сделали; они хранят исходный код в секрете, поэтому после компиляции он дал вам все это, чтобы вы не могли его прочитать.
"Встроенный" означает: быть включенным в ваш комплект приложений, скопировав их в него во время сборки.
Итак, они передают вам скомпилированный код (фреймворки) и сообщают вам, как включить их в свой пакет приложений. Эти рамки, в отличие от фреймворков Cocoa, еще не существуют на устройстве, поэтому, если вы не включите их в приложение, они не будут присутствовать, и ваше приложение не сможет вызвать их.
Сравните это с Cocoa фреймворками. Они тоже являются скомпилированным кодом. Но они уже существуют на устройстве. Поэтому они не встроены в ваше приложение; они просто связаны (и, если они появятся, появятся в следующей группе, Linked Frameworks и Libraries).
framework
- это иерархический каталог, который инкапсулирует динамическую библиотеку, файлы заголовков и ресурсы, такие как раскадровки, файлы изображений и локализованные строки, в один пакет. Приложения, использующие фреймворки, должныembed the framework
в комплект приложений.
Поэтому, когда вы встраиваете фреймворк в свое приложение, оно увеличивает размер вашего приложения, потому что оно копируется в ваш пакет приложений. В большинстве сценариев мы будем использовать эти разделы, когда будем использовать сторонние фреймворки.
Когда мы добавляем framework
в Embedded Binaries
он автоматически добавляет этот фреймворк и в Linked Frameworks and Libraries
.
Обратитесь к документации Apple для получения более подробной информации: https://developer.apple.com/library/archive/technotes/tn2435/_index.html
Xcode 11
содержит только раздел Frameworks, Libraries, and Embedded Content
Embedding
фактически добавляет копию фреймворка в ваш пакет приложений по умолчанию в каталоге Frameworks. Ваше приложение не сможет ничего сделать с этой платформой, если оно не ссылается на нее. XCode делает это за вас. [Link vs Embed]
Источник здесь