簡體   English   中英

將 Snowplow 添加到適用於 iOS 的 Kotlin 多平台項目

[英]Adding Snowplow to Kotlin multiplatform project for iOS

我正在嘗試將Snowplow集成到 Kotlin 多平台項目中。

安卓運行良好:

val androidMain by getting {
        dependencies {
            api("com.snowplowanalytics:snowplow-android-tracker:1.7.1")
        }
    }

但是集成iOS Cocoapod會帶來一些麻煩。 我添加了 cocoapod 插件:

plugins {
    kotlin("multiplatform") version "1.4.32"
}

和 Snowlow 吊艙:

kotlin {
    iosX64()
    iosArm64()
    cocoapods {
        pod("SnowplowTracker") {
            version = "~> 2.1.1"
        }
    }
}

Gradle 同步導致以下錯誤:

Exception in thread "main" java.lang.Error: /var/folders/gv/rc4dmzjs3wj9kt4kr00nwhdw0000gn/T/2185483547857483783.m:1:9: fatal error: module 'SnowplowTracker' not found
    at org.jetbrains.kotlin.native.interop.indexer.UtilsKt.ensureNoCompileErrors(Utils.kt:152)
    at org.jetbrains.kotlin.native.interop.indexer.ModuleSupportKt.getModulesASTFiles(ModuleSupport.kt:68)
    at org.jetbrains.kotlin.native.interop.indexer.ModuleSupportKt.getModulesInfo(ModuleSupport.kt:14)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.buildNativeLibrary(main.kt:506)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.processCLib(main.kt:264)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.interop(main.kt:74)
    at org.jetbrains.kotlin.cli.utilities.InteropCompilerKt.invokeInterop(InteropCompiler.kt:45)
    at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:19)
    at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:41)

Execution failed for task ':cinteropSnowplowTrackerIosArm64'.
> Process 'command '/Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

作為 Android 開發人員,我對 pod 及其錯誤的了解基本上為零。 我感謝任何有關解決方案的提示,因為到目前為止 Google 沒有提供幫助。

我想說這里重要的是滿足文檔中列出的所有要求。 我最關心的是你的項目是否配置

cocoapods 塊中 Podspec 文件的summaryhomepageframeworkName
version是 Gradle 項目的一個版本。

正如我從問題中看到的,現在只有pod() 此外,正如文檔和@Webfreak 所建議的那樣,添加deploymentTarget也可能在這里有所幫助。

我相信您還需要指定 podfile 的路徑和(不確定是否需要)部署目標,如下所示:

 cocoapods {
    ....
    podfile = project.file("../iosApp/Podfile")
    ios.deploymentTarget = "10.0"
 }

也嘗試手動運行 cocoapod gradle 任務podImportpodInstall

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM