Добавление зависимостей от библиотеки Pod
Чтобы добавить зависимости между проектом Kotlin и библиотекой Pod, необходимо завершить начальную настройку. Это позволит добавить зависимости от различных типов библиотек Pod.
При добавлении новой зависимости и повторном импорте проекта в IntelliJ IDEA новая зависимость будет добавлена автоматически. Дополнительные шаги не требуются.
Чтобы использовать ваш проект Kotlin с Xcode, необходимо внести изменения в файл Podfile вашего проекта.
Проекту Kotlin требуется вызов функции pod() в build.gradle.kts (build.gradle) для добавления зависимости Pod. Каждая зависимость требует отдельного вызова функции. Параметры зависимости можно указать в блоке конфигурации функции.
Вы можете найти пример проекта здесь.
Из репозитория CocoaPods
-
Укажите имя библиотеки Pod в функции
pod().В блоке конфигурации можно указать версию библиотеки с помощью параметра
version. Чтобы использовать последнюю версию библиотеки, этот параметр можно опустить. -
Укажите минимальную версию развертывания для библиотеки Pod.
kotlin { ios() cocoapods { ios.deploymentTarget = "13.5" summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" pod("AFNetworking") { version = "~> 4.0.1" } } } Повторно импортируйте проект.
Чтобы использовать эти зависимости из кода Kotlin, импортируйте пакеты cocoapods.<library-name>.
import cocoapods.AFNetworking.*
Из локально сохраненной библиотеки
-
Укажите имя библиотеки Pod в функции
pod().В блоке конфигурации укажите путь к локальной библиотеке Pod: используйте функцию
path()в значении параметраsource. -
Укажите минимальную версию развертывания для библиотеки Pod.
kotlin { ios() cocoapods { summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" ios.deploymentTarget = "13.5" pod("pod_dependency") { version = "1.0" source = path(project.file("../pod_dependency")) } pod("subspec_dependency/Core") { version = "1.0" source = path(project.file("../subspec_dependency")) } pod("AFNetworking") { version = "~> 4.0.1" } } } Повторно импортируйте проект.
Чтобы использовать эти зависимости из кода Kotlin, импортируйте пакеты cocoapods.<library-name>.
import cocoapods.pod_dependency.* import cocoapods.subspec_dependency.* import cocoapods.AFNetworking.*
Из пользовательского репозитория Git
-
Укажите имя библиотеки Pod в функции
pod().В блоке конфигурации укажите путь к репозиторию Git: используйте функцию
git()в значении параметраsource.Кроме того, вы можете указать следующие параметры в блоке после
git().commit— для использования определённой коммита из репозиторияtag— для использования определённого тега из репозиторияbranch— для использования определённой ветки из репозитория
Функция
git()отдаёт приоритет переданным параметрам в следующем порядке:commit,tag,branch. Если параметр не указан, плагин Kotlin используетHEADиз веткиmaster. -
Укажите минимальную версию развертывания для библиотеки Pod.
kotlin { ios() cocoapods { summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" ios.deploymentTarget = "13.5" pod("AFNetworking") { source = git("https://github.com/AFNetworking/AFNetworking") { tag = "4.0.0" } } pod("JSONModel") { source = git("https://github.com/jsonmodel/jsonmodel.git") { branch = "key-mapper-class" } } pod("CocoaLumberjack") { source = git("https://github.com/CocoaLumberjack/CocoaLumberjack.git") { commit = "3e7f595e3a459c39b917aacf9856cd2a48c4dbf3" } } } } Повторно импортируйте проект.
Чтобы использовать эти зависимости из кода Kotlin, импортируйте пакеты cocoapods.<library-name>.
import cocoapods.AFNetworking.* import cocoapods.JSONModel.* import cocoapods.CocoaLumberjack.*
Из zip, tar или jar архива
-
Укажите имя библиотеки Pod в функции
pod().В блоке конфигурации укажите путь к архиву: используйте функцию
url()с произвольным HTTP-адресом в значении параметраsource.Кроме того, вы можете указать булевый параметр
flattenкак второй аргумент функцииurl(). Этот параметр указывает, что все файлы Pod находятся в корневом каталоге архива. -
Укажите минимальную версию развертывания для библиотеки Pod.
kotlin { ios() cocoapods { summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" ios.deploymentTarget = "13.5" pod("pod_dependency") { source = url("https://github.com/Kotlin/kmm-with-cocoapods-sample/raw/cocoapods-zip/cocoapodSourcesZip.zip", flatten = true) } } } Повторно импортируйте проект.
Чтобы использовать эти зависимости из кода Kotlin, импортируйте пакеты cocoapods.<library-name>.
import cocoapods.pod_dependency.*
Из пользовательского репозитория Podspec
Укажите HTTP-адрес пользовательского репозитория Podspec с помощью
url()внутри блокаspecRepos.Укажите имя библиотеки Pod в функции
pod().-
Укажите минимальную версию развертывания для библиотеки Pod.
kotlin { ios() cocoapods { summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" ios.deploymentTarget = "13.5" specRepos { url("https://github.com/Kotlin/kotlin-cocoapods-spec.git") } pod("example") } } Повторно импортируйте проект.
Чтобы использовать эти зависимости из кода Kotlin, импортируйте пакеты cocoapods.<library-name>.
import cocoapods.example.*
С пользовательскими параметрами cinterop
-
Укажите имя библиотеки Pod в функции
pod().В блоке конфигурации укажите параметры cinterop:
extraOpts— для указания списка параметров для библиотеки Pod. Например, конкретные флаги:extraOpts = listOf("-compiler-option").packageName— для указания имени пакета. Если вы это укажете, вы можете импортировать библиотеку с использованием имени пакета:import <packageName>.
-
Укажите минимальную версию развертывания для библиотеки Pod.
kotlin { ios() cocoapods { summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" ios.deploymentTarget = "13.5" useLibraries() pod("YandexMapKit") { packageName = "YandexMK" } } } Повторно импортируйте проект.
Чтобы использовать эти зависимости из кода Kotlin, импортируйте пакеты cocoapods.<library-name>.
import cocoapods.YandexMapKit.*
Если вы используете параметр packageName, вы можете импортировать библиотеку с использованием имени пакета import <packageName>:
import YandexMK.YMKPoint import YandexMK.YMKDistance
Для статической библиотеки Pod
Укажите имя библиотеки с помощью функции
pod().Вызовите функцию
useLibraries()— она включает специальный флаг для статических библиотек.-
Укажите минимальную версию развертывания для библиотеки Pod.
kotlin { ios() cocoapods { summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" ios.deploymentTarget = "13.5" pod("YandexMapKit") { version = "~> 3.2" } useLibraries() } } Повторно импортируйте проект.
Чтобы использовать эти зависимости из кода Kotlin, импортируйте пакеты cocoapods.<library-name>.
import cocoapods.YandexMapKit.*
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/native-cocoapods-libraries.html