JetBrains / compose-multiplatform

Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
https://jetbrains.com/lp/compose-multiplatform
Apache License 2.0
14.85k stars 1.08k forks source link

[1.6.10-beta02] Breaks Cocoapods config #4719

Closed chrisjenx closed 2 weeks ago

chrisjenx commented 2 weeks ago

Describe the bug Can't sync a project with 1.6.10-beta02, when I have pods added too the build.gradle.kts

e.g.

        pod("FirebaseAnalytics")
        pod("Stripe") {
            extraOpts += listOf("-compiler-option", "-fmodules")
        }

removing them lets the project sync but then can't build (As required apple deps)

Affected platforms

To Reproduce try and build an iOS target witih pods included: eg:

kotlin {
    cocoapods {
        version = "1.0.0"
        summary = "Project"
        homepage = "https://homepage"
        ios.deploymentTarget = "14.1"
        framework {
            baseName = "shared"
            isStatic = true
            podfile = project.file("../iosApp/Podfile")
            transitiveExport = false
            binaryOption("bundleId", "co.name.shared")
            export("com.arkivanov.decompose:decompose:${libs.versions.decompose.get()}")
            export("com.arkivanov.essenty:lifecycle:${libs.versions.essenty.get()}")
            linkerOpts("-lsqlite3")
        }
        pod("FirebaseAnalytics")
        pod("Stripe") {
            extraOpts += listOf("-compiler-option", "-fmodules")
        }
    }
}

You will get error: Task with name 'podBuildFirebaseAnalyticsIphonesimulator' not found in project ':application:shared'.

org.gradle.api.UnknownTaskException: Task with name 'podBuildFirebaseAnalyticsIphonesimulator' not found in project ':application:shared'.
    at org.gradle.api.internal.tasks.DefaultTaskCollection.createNotFoundException(DefaultTaskCollection.java:119)
    at org.gradle.api.internal.tasks.DefaultTaskCollection.createNotFoundException(DefaultTaskCollection.java:46)
    at org.gradle.api.internal.DefaultNamedDomainObjectCollection.named(DefaultNamedDomainObjectCollection.java:385)
    at org.gradle.api.internal.tasks.DefaultTaskCollection.named(DefaultTaskCollection.java:129)
    at org.gradle.api.internal.tasks.DefaultTaskCollection.named(DefaultTaskCollection.java:46)
    at org.gradle.api.internal.DefaultNamedDomainObjectCollection.named(DefaultNamedDomainObjectCollection.java:400)
    at org.gradle.api.internal.tasks.DefaultTaskCollection.named(DefaultTaskCollection.java:139)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPluginKt.getPodBuildTaskProvider(KotlinCocoapodsPlugin.kt:130)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPluginKt.access$getPodBuildTaskProvider(KotlinCocoapodsPlugin.kt:1)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin$configureLinkingOptions$2$1.execute(KotlinCocoapodsPlugin.kt:669)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin$configureLinkingOptions$2$1.execute(KotlinCocoapodsPlugin.kt:664)
    at org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
    at org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
    at org.gradle.api.internal.DefaultNamedDomainObjectCollection$ExistingNamedDomainObjectProvider.configure(DefaultNamedDomainObjectCollection.java:910)
    at org.gradle.api.internal.tasks.DefaultTaskCollection$ExistingTaskProvider.configure(DefaultTaskCollection.java:217)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin$configureLinkingOptions$2.execute(KotlinCocoapodsPlugin.kt:664)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin$configureLinkingOptions$2.execute(KotlinCocoapodsPlugin.kt:663)
    at org.gradle.internal.code.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:122)
    at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:110)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:107)
    at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:161)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.configureLinkingOptions(KotlinCocoapodsPlugin.kt:663)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.access$configureLinkingOptions(KotlinCocoapodsPlugin.kt:165)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin$configureLinkingOptions$1$1.execute(KotlinCocoapodsPlugin.kt:656)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin$configureLinkingOptions$1$1.execute(KotlinCocoapodsPlugin.kt:652)
    at org.gradle.internal.code.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:122)
    at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:110)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:107)
    at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:161)
    at org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer.all(KotlinNativeBinaryContainer.kt)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin$configureLinkingOptions$1.execute(KotlinCocoapodsPlugin.kt:652)
    at org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin$configureLinkingOptions$1.execute(KotlinCocoapodsPlugin.kt:651)
    at org.gradle.internal.code.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:122)
    at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:110)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:107)
    at org.gradle.api.internal.collections.CollectionFilter$1.execute(CollectionFilter.java:62)
    at org.gradle.api.internal.collections.CollectionFilter$1.execute(CollectionFilter.java:62)
    at org.gradle.internal.ImmutableActionSet$SetWithManyActions.execute(ImmutableActionSet.java:329)
    at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
    at org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:125)
    at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:251)
    at org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtensionKt.configureOrCreate(KotlinMultiplatformExtension.kt:350)
    at org.jetbrains.kotlin.gradle.dsl.KotlinTargetContainerWithPresetFunctions$DefaultImpls.iosX64(KotlinTargetContainerWithPresetFunctions.kt:207)
    at org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.iosX64(KotlinMultiplatformExtension.kt:30)
    at org.jetbrains.kotlin.gradle.dsl.KotlinTargetContainerWithPresetFunctions$DefaultImpls.iosX64(KotlinTargetContainerWithPresetFunctions.kt:214)
    at org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.iosX64(KotlinMultiplatformExtension.kt:30)

Reverting back to 1.6.2 fixes and syncs and compiles fine

Expected behavior Should sync correctly

Additional context Checked xcode, devices and sdk downloaded correct, works fine on 1.6.2 only beta version breaks.

igordmn commented 2 weeks ago

Should be fixed in 1.6.10-beta03 as part of https://github.com/JetBrains/compose-multiplatform/issues/4632