Вплоть до iOS7 Apple не поддерживала динамическое связывание из соображений безопасности. Повторное использование кода между разработчиками обычно основывалось на статических библиотеках, которые были созданы как часть исполняемого файла приложения.
Введение расширений в iOS8, похоже, немного меняет ситуацию, потому что расширения — это отдельные исполняемые файлы. Совместное использование кода между расширением и содержащим его приложением осуществляется через фреймворк. Apple говорит об этом в своих примечаниях к выпуску:
Фреймворки для iOS. Разработчики iOS теперь могут создавать динамические фреймворки. Фреймворки — это набор кода и ресурсов для инкапсуляции функциональных возможностей, полезных для нескольких проектов. Фреймворки отлично работают с расширениями, разделяя логику, которая может использоваться как основным приложением, так и связанными расширениями.
Акцент мой.
Кроме того, в руководстве для разработчиков расширений объясняется, что вы можете обмениваться кодом между расширением и содержащим его приложением через «встроенную структуру».
Мой вопрос: что такое встроенный фреймворк, чем он отличается от динамического фреймворка и действительно ли мы увидим правильное динамическое связывание в iOS8? Вся документация, которую я прочитал, кажется двусмысленной по этому поводу.