Почему Apple запрещает статическую библиотеку в фреймворке? - PullRequest
0 голосов
/ 14 ноября 2018

Как в Appole doc

говорится, что:

Если вы создаете свою собственную статическую библиотеку и используете сценарии оболочки для упакуйте его в каталог .framework, вам нужно перейти на сборку вместо этого фреймворк с динамической библиотекой, так как это правильный путь построить каркас. Статические рамки не являются поддерживаемым способом совместное использование статических библиотек.

Почему Apple запрещает статическую библиотеку в рамках?

И это сокращение этого поста ? Или, может быть, этот пост смущает static library и static framework?

Все фреймворки в iOS динамические, верно? Apple сказала:

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

1 Ответ

0 голосов
/ 14 ноября 2018

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

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

Вот как Apple говорит об этом в своей документации:

Двумя важными факторами, определяющими производительность приложений, являются время их запуска и объем памяти.Уменьшение размера исполняемого файла приложения и минимизация использования памяти после его запуска ускоряют запуск приложения и уменьшают использование памяти после запуска.Использование динамических библиотек вместо статических уменьшает размер исполняемого файла приложения.Они также позволяют приложениям откладывать загрузку библиотек со специальными функциями только тогда, когда они нужны, а не во время запуска.Эта функция дополнительно способствует сокращению времени запуска и эффективному использованию памяти.

Ссылка на документацию: https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/OverviewOfDynamicLibraries.html

...