Связывание библиотек¶
Не каждое приложение использует все нативные возможности, и включение кода для поддержки всех этих возможностей повлияет на размер бинарного файла... Но мы все равно хотим поддерживать добавление этих функций, когда они вам понадобятся.
В связи с этим мы представили многие из этих функций в виде независимых статических библиотек.
Для большинства библиотек это будет так же быстро, как перетащить два файла, иногда потребуется третий шаг, но не более того.
Примечание
Все библиотеки, которые мы поставляем с React Native, находятся в папке Libraries
в корне репозитория. Некоторые из них являются чистым JavaScript, и вам нужно только require
.
Другие библиотеки также полагаются на некоторый нативный код, и в этом случае вам придется добавить эти файлы в ваше приложение, иначе приложение выдаст ошибку, как только вы попытаетесь использовать библиотеку.
Вот несколько шагов для линковки библиотек, содержащих нативный код.¶
Автоматическое связывание¶
Установите библиотеку с нативными зависимостями:
1 |
|
Флаг --save
или --save-dev
очень важен для этого шага. React Native свяжет ваши библиотеки на основе dependencies
и devDependencies
в вашем файле package.json
.
Вот и все! В следующий раз, когда вы соберете свое приложение, нативный код будет связан благодаря механизму autolinking.
Ручное связывание¶
Шаг 1¶
Если библиотека содержит нативный код, в ее папке должен быть файл .xcodeproj
. Перетащите этот файл в свой проект в Xcode (обычно в группе Libraries
в Xcode);
Шаг 2¶
Нажмите на ваш основной файл проекта (тот, который представляет собой .xcodeproj
), выберите Build Phases
и перетащите статическую библиотеку из папки Products
внутрь импортируемой библиотеки в Link Binary With Libraries
.
Шаг 3¶
Не для каждой библиотеки потребуется этот шаг, но вам нужно подумать вот о чем: Нужно ли мне знать содержимое библиотеки во время компиляции?
Это означает, что вы используете эту библиотеку на родном языке или только в JavaScript? Если вы используете ее только в JavaScript, то все в порядке!
Если же вам нужно вызывать ее из родного языка, то нам нужно знать заголовки библиотеки. Для этого нужно зайти в файл проекта, выбрать Build Settings
и найти Header Search Paths
. Там вы должны указать путь к вашей библиотеке. (Раньше в этой документации рекомендовалось использовать recursive
, но теперь это не рекомендуется, так как это может вызвать тонкие сбои сборки, особенно с CocoaPods).