Drop cocoapods
This commit is contained in:
@@ -7,17 +7,12 @@ plugins {
|
||||
alias(libs.plugins.composeCompiler)
|
||||
alias(libs.plugins.composeHotReload)
|
||||
alias(libs.plugins.kotlinSerialization)
|
||||
// CocoaPods is shipped inside the Kotlin Gradle plugin already on the classpath via
|
||||
// `recipe.kotlin.multiplatform`. Applying via `alias(libs.plugins.kotlinCocoapods)`
|
||||
// would request a fresh version and fail with "already on the classpath", so we
|
||||
// apply it by id only. The catalog still owns the shared Kotlin version.
|
||||
id("org.jetbrains.kotlin.native.cocoapods")
|
||||
id("recipe.quality")
|
||||
}
|
||||
|
||||
// Top-level project version is required by the Kotlin CocoaPods plugin when no explicit
|
||||
// `version` is set inside the `cocoapods { ... }` block. Mirrors `server/build.gradle.kts`
|
||||
// — Gradle artifact metadata only, NOT a library/plugin pin (per `verify-no-version-literals.sh`).
|
||||
// `group` is referenced by Compose Resources package naming — the
|
||||
// `compose.resources { packageOfResClass }` block below pins the historical package
|
||||
// regardless, but keep `group` set explicitly. Gradle artifact metadata only.
|
||||
group = "dev.ulfrx.recipe"
|
||||
version = "1.0.0"
|
||||
|
||||
@@ -66,26 +61,6 @@ android {
|
||||
}
|
||||
|
||||
kotlin {
|
||||
// The Kotlin CocoaPods plugin (D-01) configures the iOS framework on the iOS targets
|
||||
// declared by `recipe.kotlin.multiplatform`. `baseName = "ComposeApp"` / `isStatic = true`
|
||||
// keep existing Swift `import ComposeApp` working. The AppAuth iOS pod version comes
|
||||
// from the version catalog so this build file stays free of literal pins.
|
||||
cocoapods {
|
||||
summary = "Recipe Compose Multiplatform shared framework"
|
||||
homepage = "https://github.com/ulfrxdev/recipe"
|
||||
ios.deploymentTarget = "15.0"
|
||||
podfile = project.file("../iosApp/Podfile")
|
||||
framework {
|
||||
baseName = "ComposeApp"
|
||||
isStatic = true
|
||||
}
|
||||
pod("AppAuth") {
|
||||
version =
|
||||
libs.versions.appauth.ios
|
||||
.get()
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
commonMain.dependencies {
|
||||
implementation(project.dependencies.platform(libs.koin.bom))
|
||||
@@ -101,7 +76,9 @@ kotlin {
|
||||
implementation(libs.compose.uiToolingPreview)
|
||||
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
||||
implementation(libs.androidx.lifecycle.runtimeCompose)
|
||||
implementation(projects.shared)
|
||||
// `api` so `:shared` types (notably `Constants`) flow through to the
|
||||
// exported ObjC framework headers — the iOS Swift bridge needs them.
|
||||
api(projects.shared)
|
||||
|
||||
// Phase 2: Ktor client + serialization + secure settings (D-13, D-16, D-17).
|
||||
// The MPP variant of `ktor-serialization-kotlinx-json` is required here; the
|
||||
@@ -135,8 +112,9 @@ kotlin {
|
||||
implementation(libs.ktor.clientOkhttp)
|
||||
}
|
||||
iosMain.dependencies {
|
||||
// Phase 2 iOS: Darwin engine for Ktor; AppAuth-iOS arrives via the
|
||||
// CocoaPods block above so the shared framework links it directly.
|
||||
// Phase 2 iOS: Darwin engine for Ktor. AppAuth-iOS is delivered via
|
||||
// SwiftPM in iosApp.xcodeproj and consumed through a Swift bridge —
|
||||
// no Kotlin-side AppAuth dependency (DECISION-drop-cocoapods, 2026-04-28).
|
||||
implementation(libs.ktor.clientDarwin)
|
||||
}
|
||||
jvmMain.dependencies {
|
||||
@@ -155,11 +133,10 @@ dependencies {
|
||||
debugImplementation(libs.compose.uiTooling)
|
||||
}
|
||||
|
||||
// Adding `group = "dev.ulfrx.recipe"` (required by the Kotlin CocoaPods plugin to render
|
||||
// the podspec) shifts the Compose Resources `Res` class package from
|
||||
// `group = "dev.ulfrx.recipe"` shifts the Compose Resources `Res` class package from
|
||||
// `recipe.composeapp.generated.resources` to `dev.ulfrx.recipe.composeapp.generated.resources`,
|
||||
// breaking the Phase 1 `App.kt` import. Lock the historical package so this plan's wiring
|
||||
// changes don't cascade into UI code; Plan 02-04+ replaces `App.kt`'s template body anyway.
|
||||
// breaking the Phase 1 `App.kt` import. Lock the historical package so module-naming
|
||||
// changes don't cascade into UI code.
|
||||
compose.resources {
|
||||
packageOfResClass = "recipe.composeapp.generated.resources"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user