Модуль TrustWalletCore/WalletCore в Kotlin Multiplatform — почти без классов

В нашем проекте Kotlin Mobile Multiplatform для iOS и Android мы пытаемся получить доступ к Cocopod TrustWalletCore из Kotlin.

      // build.gradle.kts (:shared)
cocoapods {
   version = "1.0"
   podfile = project.file("../iosApp/Podfile")
   pod("WalletCore")
}

И подфайл

      target 'iosApp' do
  pod 'TrustWalletCore'
end

Это успешно позволяетimport cocoapods.WalletCore.*в shared/iosMain - без вышеперечисленногоcocoapods {...}импорт недоступен.

Однако из этого пакета доступен только класс Crypto (и CryptoMeta, который не слишком отличается).

Судя по всему, он генерируется из Pod/библиотеки с помощью commonizer в 0_WalletCore.knm (около 15expectфункций в сумме - пара здесь для иллюстрации):

      @kotlin.commonizer.ObjCCallable public open external expect fun base58Encode(data: platform.Foundation.NSData): kotlin.String { /* compiled code */ }

@kotlin.commonizer.ObjCCallable public open external expect fun generateMnemonicFromSeed(seed: platform.Foundation.NSData): kotlin.String { /* compiled code */ }

Он имеет функции, связанные с мнемоникой, а такжеsignHash/verifySignatureно не более того.

Я надеялся увидеть доступные для импорта в Котлин классы вродеHDWallet,EthereumSigningInputи т. д. Я могу использовать эти библиотечные классы в Swift черезpod TrustWalletCoreв Xcode (import WalletCore).

ПОЧЕМУ я не могу получить аналогичный/полный набор классов черезnative.cocoapodsплагин?

1 ответ

Попробуйте объявить зависимость с помощьюmoduleNameпараметр:

      kotlin {
    cocoapods {
        ...
        pod(name = "TrustWalletCore", version = "3.1.0", moduleName = "WalletCore")
    }
}

Другие вопросы по тегам