Christian Sousa
04/01/2020, 4:49 PMkotlin {
cocoapods {
// Configure a dependency on AFNetworking.
// The CocoaPods version notation is supported.
// The dependency will be added to all macOS and iOS targets.
pod("AFNetworking", "~> 3.2.0")
}
}
?
Because I did that and then on my ios part I cant import it because it says that AFNetworking is an unresolved referencemagnumrocha
04/01/2020, 4:52 PMChristian Sousa
04/01/2020, 4:54 PMmagnumrocha
04/01/2020, 4:55 PMChristian Sousa
04/01/2020, 4:56 PMmagnumrocha
04/01/2020, 4:56 PMChristian Sousa
04/01/2020, 4:57 PMmagnumrocha
04/01/2020, 4:58 PMspierce7
04/01/2020, 4:59 PMmagnumrocha
04/01/2020, 4:59 PMChristian Sousa
04/01/2020, 4:59 PMspierce7
04/01/2020, 4:59 PMiosMain
- it doesn’t work for anythingmagnumrocha
04/01/2020, 5:00 PMconfigure(listOf(iosArm32, iosArm64, iosX64)) {
compilations.getByName("main") {
source(sourceSets.get("iosMain"))
val firebaseAuth by cinterops.creating {
packageName("cocoapods.FirebaseAuth")
defFile(file("$projectDir/src/iosMain/c_interop/FirebaseAuth.def"))
compilerOpts("-F$projectDir/src/iosMain/c_interop/modules/FirebaseAuth-6.2.1")
}
}
}
spierce7
04/01/2020, 5:01 PMmagnumrocha
04/01/2020, 5:01 PMspierce7
04/01/2020, 5:01 PMChristian Sousa
04/01/2020, 5:02 PMmagnumrocha
04/01/2020, 5:03 PMChristian Sousa
04/01/2020, 5:25 PMbuild.gradle.kts
looks like this right now:import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
id( "com.android.library")
id("dev.icerock.mobile.multiplatform-resources")
kotlin("multiplatform")
id("org.jetbrains.kotlin.native.cocoapods")
}
version = "1.0"
apply(plugin="kotlinx-serialization")
android {
compileSdkVersion(29)
buildToolsVersion("29.0.3")
defaultConfig {
minSdkVersion(16)
targetSdkVersion(29)
}
buildTypes {
getByName("release") {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "<http://proguard-rules.pro|proguard-rules.pro>")
}
}
}
kotlin {
val kotlin_version = "1.3.70"
val coroutines_version = "1.3.4"
val serialization_version = "0.20.0"
val ktor_version = "1.3.2"
//select iOS target platform depending on the Xcode environment variables
val iOSTarget: (String, KotlinNativeTarget.() -> Unit) -> KotlinNativeTarget =
if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true)
::iosArm64
else
::iosX64
iOSTarget("ios") {}
android("android")
sourceSets["commonMain"].dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$coroutines_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serialization_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-properties-common:$serialization_version")
implementation("io.ktor:ktor-client:$ktor_version")
implementation("io.ktor:ktor-client-core:$ktor_version")
implementation("io.ktor:ktor-client-json:$ktor_version")
implementation("io.ktor:ktor-client-serialization:$ktor_version")
implementation("com.benasher44:uuid:0.1.0")
implementation("com.soywiz.korlibs.klock:klock:1.9.1")
implementation("com.soywiz.korlibs.krypto:krypto:1.11.0")
implementation("dev.icerock.moko:resources:0.9.0")
implementation("com.google.android:flexbox:2.0.1")
}
sourceSets["androidMain"].dependencies {
implementation("androidx.preference:preference-ktx:1.1.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serialization_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-properties:$serialization_version")
implementation("io.ktor:ktor-client-android:$ktor_version")
implementation("io.ktor:ktor-client-core-jvm:$ktor_version")
implementation("io.ktor:ktor-client-json-jvm:$ktor_version")
implementation("io.ktor:ktor-client-serialization-jvm:$ktor_version")
}
sourceSets["iosMain"].dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-native:$coroutines_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serialization_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-properties-native:$serialization_version")
implementation("io.ktor:ktor-client-ios:$ktor_version")
implementation("io.ktor:ktor-client-core-native:$ktor_version")
implementation("io.ktor:ktor-client-serialization-native:$ktor_version")
//implementation("io.ktor:ktor-client-json-native:$ktor_version")
}
cocoapods {
// Configure fields required by CocoaPods.
summary = "MyLib"
homepage = "<https://google.com>"
// The name of the produced framework can be changed.
// The name of the Gradle project is used here by default.
frameworkName = "MyLib"
}
}
multiplatformResources {
multiplatformResourcesPackage = "com.christiansousa.mylib"
}
val packForXcode by tasks.creating(Sync::class) {
val targetDir = File(buildDir, "xcode-frameworks")
val mode = System.getenv("CONFIGURATION") ?: "DEBUG"
val framework = kotlin.targets
.getByName<KotlinNativeTarget>("ios")
.binaries.getFramework(mode)
inputs.property("mode", mode)
dependsOn(framework.linkTask)
from({ framework.outputDirectory })
into(targetDir)
/// generate a helpful ./gradlew wrapper with embedded Java path
doLast {
val gradlew = File(targetDir, "gradlew")
gradlew.writeText("#!/bin/bash\n"
+ "export 'JAVA_HOME=${System.getProperty("java.home")}'\n"
+ "cd '${rootProject.rootDir}'\n"
+ "./gradlew \$@\n")
gradlew.setExecutable(true)
}
}
tasks.getByName("build").dependsOn(packForXcode)
spierce7
04/01/2020, 5:26 PMChristian Sousa
04/01/2020, 5:26 PMspierce7
04/01/2020, 5:27 PMmagnumrocha
04/01/2020, 5:27 PMspierce7
04/01/2020, 5:27 PMiosMain
magnumrocha
04/01/2020, 5:28 PMframeworkName = "SlateKt" // NOTE: The build for iOS Simulator works, but for iOS Devices not...
import kmp_lib
instead of import SlateKt
Christian Sousa
04/01/2020, 5:34 PMmagnumrocha
04/01/2020, 5:34 PMiosMain
, it only won't work if you don't config itspierce7
04/01/2020, 5:35 PMmagnumrocha
04/01/2020, 5:35 PMspierce7
04/01/2020, 5:37 PMiosMain
magnumrocha
04/01/2020, 5:40 PMiosMain
source folder, and the compilation will works as expected...