2015-09-03 5 views
39

При использовании внешнего каркаса Xcode теперь имеет закладные Binaries, а также Linked Frameworks раздел.В чем разница между Embedded Binaries и Linked Frameworks

enter image description here

При загрузке внешних рамок и Finder-> перетащить его в Xcode, он поместит рамки в Linked библиотеки и фреймворки разделе.

Когда вы строите библиотеку с Карфагене, рекомендуется перетаскивать ее в Встраиваемые бинарные файлы.

И, кажется, работает с точкой зрения связи, так как API становится доступной в любом случае, еще более при добавлении рамки в Embedded Binaries раздел является также автоматически добавляется в Linked рамочных и библиотеки раздела ,

Итак, кто прав? Карфаген или остальная часть Интернета? и почему существуют 2 варианта включения внешних ресурсов в проекты Xcode?

+0

И работает ли это при тестировании на устройстве? – trojanfoe

+0

@trojanfoe да. –

+0

Это не имеет смысла, если только это не будет 1) во вложенном двоичном файле или 2) имеет шаг сборки, чтобы скопировать фреймворк в комплект приложения во время сборки. – trojanfoe

ответ

8

Если вы вставляете двоичный файл, он будет включен в ваш продукт. Если вы связываете только библиотеку или инфраструктуру без ее внедрения, она не будет частью вашего продукта.

Однако в iOS8 все сторонние рамки должны быть «встроены». Даже рамки, которые разделяются между различными программами, должны быть «встроены» в каждую из этих программ. В случае, если он был установлен на устройстве в общем месте, любой другой процесс установки с использованием того же «встроенного» кода из общего местоположения может повторно использовать эту существующую установку. Это характерно для iOS8, это было невозможно до iOS8 и вне iOS мира, этот ответ не был бы точным.

+0

«Встраивание двоичного файла упростит установку вашего продукта для пользователя, если у них еще нет рабочей установки этого материала на их машинах "звучит как OSX, а не iOS ... если у них нет установленной библиотеки (т. е. она нестандартная), то приложение просто не загружается. – trojanfoe

+0

он не только не загрузится, а @trojanfoe, он будет отклонен, и вы не сможете его установить в первую очередь (если вы не являетесь разработчиком или не используете учетную запись Enterprise ...) – dogsgod

+0

Динамически связанные рамки возможны, так как iOS 8 – Basti

23
  1. Ссылка. Мы должны связать фреймворк, если будем использовать какой-либо API, определенный в нем.

  2. Встраивание. Этот процесс обеспечит добавление дополнительных фреймворков в пакет приложений и потенциально поможет обмен кодами между приложением и любыми расширениями. Мы внедряем только сторонние фреймворки, а не те, которые предоставляются iOS, поскольку они легко доступны в устройстве. Если мы внедряем, это означает, что нам также нужно будет связать их, чтобы Xcode мог скомпилировать и создать сборку. Когда приложение запускается в устройстве, встроенная инфраструктура будет загружена в память, когда это необходимо.

+1

nice explain sir – ShivaPrasad

+0

Спасибо @ShivaPrasad :-) – Shripada

-1

Полагаю, встроенная двоичная система включает только динамическую структуру, доступную на iOS 8 и выше, в противном случае вы можете связать только статическую структуру.

Смежные вопросы