Spec-Zone.ru › Kotlin 1.6

Добавление зависимостей от библиотеки Pod

Для добавления зависимостей между проектом Kotlin и библиотекой Pod необходимо завершить начальную настройку. Это позволит добавлять зависимости от различных типов библиотек Pod.

При добавлении новой зависимости и повторном импорте проекта в IntelliJ IDEA новая зависимость будет добавлена автоматически. Дополнительные шаги не требуются.

Для использования проекта Kotlin с Xcode необходимо внесите изменения в файл Podfile проекта.

Проект Kotlin требует вызова функции pod() в build.gradle.kts (build.gradle) для добавления зависимости Pod. Каждая зависимость требует отдельного вызова функции. Параметры зависимости можно указать в блоке конфигурации функции.

Если вы не укажете минимальную версию целевой платформы, а зависимость Pod требует более высокую версию, то возникнет ошибка.

Вы можете найти пример проекта здесь.

Из репозитория CocoaPods

  1. Укажите имя библиотеки Pod в функции pod().

    В блоке конфигурации можно указать версию библиотеки с помощью параметра version. Для использования последней версии библиотеки, этот параметр можно опустить.

    Вы можете добавить зависимости от подспецификаций.

  2. Укажите минимальную версию целевой платформы для библиотеки Pod.

    kotlin {
        ios()
    
        cocoapods {
            ios.deploymentTarget = "13.5"
    
            summary = "CocoaPods test library"
            homepage = "https://github.com/JetBrains/kotlin"
    
            pod("AFNetworking") {
                version = "~> 4.0.1"
            }
        }
    }
    
  3. Переимпортируйте проект.

Для использования этих зависимостей из кода Kotlin импортируйте пакеты cocoapods.<library-name>.

import cocoapods.AFNetworking.*

Из локально сохранённой библиотеки

  1. Укажите имя библиотеки Pod в функции pod().

    В блоке конфигурации укажите путь к локальной библиотеке Pod: используйте функцию path() в качестве значения параметра source.

    Можно также добавить локальные зависимости от подспецификаций. Блок cocoapods может одновременно содержать зависимости от локально сохранённых библиотек Pod и библиотек Pod из репозитория CocoaPods.

  2. Укажите минимальную версию целевой платформы для библиотеки 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"
            }
        }
    }
    

    Вы также можете указать версию библиотеки, используя параметр version в блоке конфигурации. Для использования последней версии библиотеки, опустите этот параметр.

  3. Переимпортируйте проект.

Для использования этих зависимостей из кода Kotlin импортируйте пакеты cocoapods.<library-name>.

import cocoapods.pod_dependency.*
import cocoapods.subspec_dependency.*
import cocoapods.AFNetworking.*

Из пользовательского Git репозитория

  1. Укажите имя библиотеки Pod в функции pod().

    В блоке конфигурации укажите путь к Git репозиторию: используйте функцию git() в качестве значения параметра source.

    Кроме того, вы можете указать следующие параметры в блоке после git():

    • commit — для использования определенного коммита из репозитория

    • tag — для использования определённой метки из репозитория

    • branch — для использования определённой ветки из репозитория

    Функция git() отдаёт приоритет переданным параметрам в следующем порядке: commit, tag, branch Если вы не указываете параметр, плагин Kotlin использует значение HEAD из ветки master.

    Можно комбинировать параметры branch, commit, и tag для получения конкретной версии библиотеки Pod.

  2. Укажите минимальную версию целевой платформы для библиотеки 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"
                }
            }
        }
    }
    
  3. Переимпортируйте проект.

Для корректной работы с Xcode, вы должны указать путь к Podspec в файле Podfile. Например:

target 'ios-app' do
    # ... other pod depedencies ...
   pod 'JSONModel', :path => '../cocoapods/kmm-with-cocoapods-sample/kotlin-library/build/cocoapods/externalSources/git/JSONModel'
end

Для использования этих зависимостей из кода Kotlin импортируйте пакеты cocoapods.<library-name>.

import cocoapods.AFNetworking.*
import cocoapods.JSONModel.*
import cocoapods.CocoaLumberjack.*

Из zip, tar или jar архива

  1. Укажите имя библиотеки Pod в функции pod().

    В блоке конфигурации укажите путь к архиву: используйте функцию url() с произвольным HTTP адресом в качестве значения параметра source.

    Кроме того, вы можете указать булевый параметр flatten в качестве второго аргумента для функции url() Этот параметр указывает, что все файлы Pod находятся в корневом каталоге архива.

  2. Укажите минимальную версию целевой платформы для библиотеки 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)
            }
        }
    }
    
  3. Переимпортируйте проект.

Для корректной работы с Xcode, вы должны указать путь к Podspec в файле Podfile. Например:

target 'ios-app' do
    # ... other pod depedencies ...
   pod 'podspecWithFilesExample', :path => '../cocoapods/kmm-with-cocoapods-sample/pod_dependency'
end

Для использования этих зависимостей из кода Kotlin импортируйте пакеты cocoapods.<library-name>.

import cocoapods.pod_dependency.*

Из пользовательского репозитория Podspec

  1. Укажите HTTP адрес пользовательского репозитория Podspec, используя url() внутри блока specRepos.

  2. Укажите имя библиотеки Pod в функции pod().

  3. Укажите минимальную версию целевой платформы для библиотеки 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")
        }
    }
    
  4. Переимпортируйте проект.

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

source 'https://github.com/Kotlin/kotlin-cocoapods-spec.git'`

Также необходимо указать путь к Podspec в файле Podfile. Например:

target 'ios-app' do
    # ... other pod depedencies ...
   pod 'podspecWithFilesExample', :path => '../cocoapods/kmm-with-cocoapods-sample/pod_dependency'
end

Для использования этих зависимостей из кода Kotlin импортируйте пакеты cocoapods.<library-name>.

import cocoapods.example.*

С пользовательскими опциями cinterop

  1. Укажите имя библиотеки Pod в функции pod().

    В блоке конфигурации укажите опции cinterop:

    • extraOpts — для указания списка опций для библиотеки Pod. Например, специфические флаги: extraOpts = listOf("-compiler-option")

    • packageName — для указания имени пакета. Если вы укажете это, вы сможете импортировать библиотеку, используя имя пакета: import <packageName>.

  2. Укажите минимальную версию целевой платформы для библиотеки Pod.

    kotlin {
        ios()
    
        cocoapods {
            summary = "CocoaPods test library"
            homepage = "https://github.com/JetBrains/kotlin"
    
            ios.deploymentTarget = "13.5"
    
            useLibraries()
    
            pod("YandexMapKit") {
                packageName = "YandexMK"
            }
        }
    }
    
  3. Переимпортируйте проект.

Для использования этих зависимостей из кода Kotlin импортируйте пакеты cocoapods.<library-name>.

import cocoapods.YandexMapKit.*

Если вы используете параметр packageName, вы можете импортировать библиотеку, используя имя пакета import <packageName>:

import YandexMK.YMKPoint
import YandexMK.YMKDistance

Для статической библиотеки Pod

  1. Укажите имя библиотеки, используя функцию pod().

  2. Вызовите функцию useLibraries() — это включает специальный флаг для статических библиотек.

  3. Укажите минимальную версию целевой платформы для библиотеки Pod.

    kotlin {
        ios()
    
        cocoapods {
            summary = "CocoaPods test library"
            homepage = "https://github.com/JetBrains/kotlin"
    
            ios.deploymentTarget = "13.5"
    
            pod("YandexMapKit") {
                version = "~> 3.2"
            }
            useLibraries()
        }
    }
    
  4. Переимпортируйте проект.

Для использования этих зависимостей из кода Kotlin импортируйте пакеты cocoapods.<library-name>.

import cocoapods.YandexMapKit.*
Последнее изменение: 07 апреля 2022
Обзор и настройка CocoaPods Использование проекта Kotlin Gradle в качестве зависимости CocoaPods

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API