Я только что попробовал эти шаги и сумел расширить этот образец с рабочим взаимодействием инфраструктуры AFNetworking с помощью плагина CocoaPods. Вот мои шаги:
- После клонирования проекта и проверки ветки
step-008
отредактируйте build.gradle.kts таким образом: добавьте плагин CocoaPods в раздел plugins
как id("org.jetbrains.kotlin.native.cocoapods")
и удалить весь блок binaries
из блока спецификации iOSTarget. Это должно быть сделано, потому что плагин cocoaPods создает фреймворк самостоятельно, и нам следует избегать дублирования (см. обсуждение ). Вместо этого блока добавьте cocoapods
спецификацию. Эта часть скрипта должна выглядеть так:
iOSTarget("ios") {}
version = "1.0.0"
cocoapods {
summary = "This is sample Summary"
homepage = "Home URL"
pod("AFNetworking", "~> 3.2.0")
}
Затем выполните задачу Gradle
podspec
, чтобы сгенерировать podspe c для вашей платформы. Это должно быть сделано внутри каталога
/SharedCode/
, как и предыдущий. Если задача не представлена, это означает, что плагин CocoaPods был применен неправильно. Когда podspe c готов, мы можем использовать его из проекта Xcode. Для этого откройте каталог
/native/KotlinIOS/
и создайте в нем Podfile. Я использовал это содержимое для:
use_frameworks!
platform :ios, '9.0'
target 'KotlinIOS' do
pod 'SharedCode', :path => '../../SharedCode'
end
Важной частью здесь является то, что имя соответствует имени нашего фреймворка, а относительный путь указывает на место, содержащее build.gradle.kts
с первого шага. После создания Podfile, установите pods здесь, используя pod install
от терминала (CocoaPods должен быть установлен ).
Теперь откройте сгенерированный
KotlinIOS.xcworkspace
с Xcode. Там еще одна вещь должна быть исправлена. На данный момент проект KotlinIOS настроен на поиск фреймворков только в каталоге
/SharedCode/build/Xcode-frameworks/
, но CocoaPods не будет ничего там размещать. Итак, выберите KotlinIOS на левой панели, откройте вкладку Настройки сборки и найдите там Пути поиска -> Пути поиска платформы. Нажмите + и добавьте $ (унаследованный) в список, чтобы сделать доступными рамки, которые установил CocoaPods. Теперь выполните Build from Xcode. После этого в вашей Kotlin IDE должен появиться пакет AFNetworking. Чтобы импортировать его, используйте
import cocoapods.AFNetworking.*
. Впервые может потребоваться аннулировать кэши и перезапустить, чтобы он правильно видел этот пакет.
Надеюсь, это поможет. Пожалуйста, прокомментируйте, если что-то неясно в этой инструкции.