Добавление зависимостей от библиотеки 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