Я изо всех сил пытался решить проблему.
Я создаю кроссплатформенное приложение (iOS и Android) с использованием Kotlin Multiplatform (KMP), где мне нужна библиотека от Google (https://github.com/google/libphonenumber).
Для Android я могу указать на репозиторий Maven (https://repo1.maven.org/maven2/com/googlecode/libphonenumber/libphonenumber/8.12.6/).
Для iOS я могу использовать ObjC-порт libPhonenumber через Cocoapods. (https://cocoapods.org/pods/libPhoneNumber-ios).
Но я не могу использовать Kotlin (плагин cocoapod), чтобы правильно распознать Pod. Плагин не может быть собран. Вот подробности моей настройки:
- Xcode v11.5
- IntelliJ IDEA версии 2020.1.2
- Cocoapods v1.9.1
- Gradle 6.0.1
- Образец репо (https://github.com/touchlab/kotlin-native) ПРИМЕЧАНИЕ. Внутри репо, я использую ./samples/cocoapods
- изменить ./samples/cocoapods/kotlin-library/build.gradle.kts закомментировал AFNetworking, удалить модуль AFNetworking
pod("AFNetworking", "~> 3.2.0")
добавить новый модульpod("libPhoneNumber-iOS")
- изменить ./samples/cocoapods/kotlin-library/gradle.properties измените эту строку:
kotlin.native.home=../../../dist
на это:#kotlin.native.home=../../../dist
- в Терминале в этой папке: ./samples/cocoapods/kotlin-library/
./gradlew podspec
Это создает файл podspec (libPhoneNumber-iOS.def) в ./samples/cocoapods/kotlin-library/build/cocoapods/defs/ - компакт-диск из библиотеки kotlin в папку ios-app
cd ../ios-app/
- Установите Pod с помощью команды:
pod install
Вы увидите что-то вроде:
Downloading dependencies
Installing kotlin_library (1.0)
Installing libPhoneNumber-iOS (0.9.15)
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 2 total pods installed.
Когда я создаю образец target: simulator ios-app в Xcode, я получаю сообщение об ошибке: fatal error: module 'libPhoneNumber' not found
Я пробовал другие модули libPhoneNumber, например:
- libPhoneNumberSwift
- LTPhoneNumberField Оба не могут быть построены с использованием плагина cocoapods Kotlin, но работают как Pod без плагина cocoapod Kotlin.
Что мне не хватает?