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
15.59k stars 1.14k forks source link

KMM iOS build failing post [error: java.nio.file.NotDirectoryException: /default/linkdata/] #4444

Open sureshmaidaragi1919 opened 4 months ago

sureshmaidaragi1919 commented 4 months ago

Describe the bug A clear and concise description of what the bug is.

Affected platforms

Versions

To Reproduce

Expected behavior I am using the above version of Kotlin and Jetbrain compose android build works fine but while generating iOS framework using gradle assemble I am seeing the below

Screenshots

Screenshot 2024-03-07 at 6 17 53 PM

Additional context

error: Compilation failed: /default/linkdata/package_kmmpwpitara

 * Source files: 
 * Compiler version: 1.9.22
 * Output kind: FRAMEWORK

error: java.nio.file.NotDirectoryException: /default/linkdata/package_kmmpwpitara
    at jdk.zipfs/jdk.nio.zipfs.ZipDirectoryStream.<init>(ZipDirectoryStream.java:58)
    at jdk.zipfs/jdk.nio.zipfs.ZipPath.newDirectoryStream(ZipPath.java:755)
    at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.newDirectoryStream(ZipFileSystemProvider.java:262)
    at java.base/java.nio.file.Files.newDirectoryStream(Files.java:482)
    at org.jetbrains.kotlin.konan.file.File.getListFiles(File.kt:54)
    at org.jetbrains.kotlin.library.impl.MetadataLibraryImpl$packageMetadataParts$1.invoke(KotlinLibraryImpl.kt:76)
    at org.jetbrains.kotlin.library.impl.MetadataLibraryImpl$packageMetadataParts$1.invoke(KotlinLibraryImpl.kt:73)
    at org.jetbrains.kotlin.library.impl.BaseLibraryAccess$inPlace$1.invoke(KotlinLibraryLayoutImpl.kt:68)
    at org.jetbrains.kotlin.library.impl.BaseLibraryAccess$inPlace$1.invoke(KotlinLibraryLayoutImpl.kt:67)
    at org.jetbrains.kotlin.konan.file.ZipUtilKt.withZipFileSystem(ZipUtil.kt:134)
    at org.jetbrains.kotlin.konan.file.ZipUtilKt.withZipFileSystem(ZipUtil.kt:82)
    at org.jetbrains.kotlin.konan.file.ZipFileSystemInPlaceAccessor.withZipFileSystem(ZipFileSystemAccessor.kt:16)
    at org.jetbrains.kotlin.library.impl.BaseLibraryAccess.inPlace(KotlinLibraryLayoutImpl.kt:67)
    at org.jetbrains.kotlin.library.impl.MetadataLibraryImpl.packageMetadataParts(KotlinLibraryImpl.kt:73)
    at org.jetbrains.kotlin.konan.library.impl.KonanLibraryImpl.packageMetadataParts(KonanLibraryImpl.kt)
    at org.jetbrains.kotlin.library.metadata.impl.KlibMetadataDeserializedPackageFragmentsFactoryImpl.createDeserializedPackageFragments(KlibMetadataDeserializedPackageFragmentsFactoryImpl.kt:38)
    at org.jetbrains.kotlin.library.metadata.impl.KlibMetadataModuleDescriptorFactoryImpl.createPackageFragmentProvider(KlibMetadataModuleDescriptorFactoryImpl.kt:107)
    at org.jetbrains.kotlin.library.metadata.impl.KlibMetadataModuleDescriptorFactoryImpl.createDescriptorOptionalBuiltIns(KlibMetadataModuleDescriptorFactoryImpl.kt:64)
    at org.jetbrains.kotlin.library.metadata.KlibMetadataModuleDescriptorFactory.createDescriptor(KlibMetadataModuleDescriptorFactory.kt:31)
    at org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl.createDescriptorOptionalBuiltsIns(KlibResolvedModuleDescriptorsFactoryImpl.kt:161)
    at org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl.access$createDescriptorOptionalBuiltsIns(KlibResolvedModuleDescriptorsFactoryImpl.kt:33)
    at org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl$createResolved$1$1.invoke(KlibResolvedModuleDescriptorsFactoryImpl.kt:63)
    at org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl$createResolved$1$1.invoke(KlibResolvedModuleDescriptorsFactoryImpl.kt:60)
    at org.jetbrains.kotlin.util.UtilKt.profileIf(Util.kt:22)
    at org.jetbrains.kotlin.util.UtilKt.profile(Util.kt:16)
    at org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl$createResolved$1.invoke(KlibResolvedModuleDescriptorsFactoryImpl.kt:60)
    at org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl$createResolved$1.invoke(KlibResolvedModuleDescriptorsFactoryImpl.kt:59)
    at org.jetbrains.kotlin.library.metadata.resolver.impl.KotlinLibraryResolverResultImpl.forEach(KotlinLibraryResolverImpl.kt:166)
    at org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl.createResolved(KlibResolvedModuleDescriptorsFactoryImpl.kt:59)
    at org.jetbrains.kotlin.backend.konan.TopDownAnalyzerFacadeForKonan.analyzeFiles(TopDownAnalyzerFacadeForKonan.kt:43)
    at org.jetbrains.kotlin.backend.konan.driver.phases.FrontendKt$FrontendPhase$2$2.invoke(Frontend.kt:66)
    at org.jetbrains.kotlin.backend.konan.driver.phases.FrontendKt$FrontendPhase$2$2.invoke(Frontend.kt:65)
    at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
    at org.jetbrains.kotlin.backend.konan.driver.phases.FrontendKt$FrontendPhase$2.invoke(Frontend.kt:65)
    at org.jetbrains.kotlin.backend.konan.driver.phases.FrontendKt$FrontendPhase$2.invoke(Frontend.kt:43)
    at org.jetbrains.kotlin.backend.konan.driver.phases.PhaseBuildersKt$createSimpleNamedCompilerPhase$1.phaseBody(PhaseBuilders.kt:32)
    at org.jetbrains.kotlin.backend.common.phaser.SimpleNamedCompilerPhase.phaseBody(CompilerPhase.kt:207)
    at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase.invoke(CompilerPhase.kt:94)
    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine.runPhase(Machinery.kt:139)
    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine.runPhase$default(Machinery.kt:130)
    at org.jetbrains.kotlin.backend.konan.driver.phases.TopLevelPhasesKt.runFrontend(TopLevelPhases.kt:33)
    at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.produceObjCFramework(DynamicCompilerDriver.kt:62)
    at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.access$produceObjCFramework(DynamicCompilerDriver.kt:31)
    at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver$run$1$1$1.invoke(DynamicCompilerDriver.kt:42)
    at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver$run$1$1$1.invoke(DynamicCompilerDriver.kt:36)
    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion$startTopLevel$topLevelPhase$1.phaseBody(Machinery.kt:98)
    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion$startTopLevel$topLevelPhase$1.phaseBody(Machinery.kt:92)
    at org.jetbrains.kotlin.backend.common.phaser.SimpleNamedCompilerPhase.phaseBody(CompilerPhase.kt:207)
    at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase.invoke(CompilerPhase.kt:94)
    at org.jetbrains.kotlin.backend.konan.driver.PhaseEngine$Companion.startTopLevel(Machinery.kt:105)
    at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.run(DynamicCompilerDriver.kt:36)
    at org.jetbrains.kotlin.backend.konan.KonanDriver.run(KonanDriver.kt:118)
    at org.jetbrains.kotlin.cli.bc.K2Native.runKonanDriver(K2Native.kt:151)
    at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:69)
    at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:36)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:79)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:43)
    at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:180)
    at org.jetbrains.kotlin.cli.bc.K2Native$Companion$mainNoExitWithRenderer$1.invoke(K2Native.kt:188)
    at org.jetbrains.kotlin.cli.bc.K2Native$Companion$mainNoExitWithRenderer$1.invoke(K2Native.kt:187)
    at org.jetbrains.kotlin.util.UtilKt.profileIf(Util.kt:22)
    at org.jetbrains.kotlin.util.UtilKt.profile(Util.kt:16)
    at org.jetbrains.kotlin.cli.bc.K2Native$Companion.mainNoExitWithRenderer(K2Native.kt:187)
    at org.jetbrains.kotlin.cli.bc.K2NativeKt.mainNoExitWithXcodeRenderer(K2Native.kt:206)
    at org.jetbrains.kotlin.cli.utilities.MainKt$daemonMainWithXcodeRenderer$1.invoke(main.kt:53)
    at org.jetbrains.kotlin.cli.utilities.MainKt$daemonMainWithXcodeRenderer$1.invoke(main.kt:53)
    at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:20)
    at org.jetbrains.kotlin.cli.utilities.MainKt.inProcessMain(main.kt:58)
    at org.jetbrains.kotlin.cli.utilities.MainKt.daemonMainWithXcodeRenderer(main.kt:53)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.jetbrains.kotlin.compilerRunner.KotlinToolRunner.runInProcess(KotlinToolRunner.kt:198)
    at org.jetbrains.kotlin.compilerRunner.KotlinToolRunner.run(KotlinToolRunner.kt:135)
    at org.jetbrains.kotlin.compilerRunner.KotlinNativeToolRunner.run(nativeToolRunners.kt:146)
    at org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink$compile$1.invoke(KotlinNativeLink.kt:416)
    at org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink$compile$1.invoke(KotlinNativeLink.kt:364)
    at org.jetbrains.kotlin.compilerRunner.ReportUtilsKt.addBuildMetricsForTaskAction(reportUtils.kt:276)
    at org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink.compile(KotlinNativeLink.kt:364)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
    at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:248)
    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.tasks.execution.TaskExecution.executeAction(TaskExecution.java:233)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:216)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:199)
    at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
    at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
    at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    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.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
    at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:179)
    at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
    at org.gradle.internal.Either$Right.fold(Either.java:175)
    at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
    at java.base/java.util.Optional.orElseGet(Optional.java:364)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:77)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:38)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
    at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
    at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
    at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
    at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
    at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:293)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)
    at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    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.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:842)

error: Compilation finished with errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':pitaraShared:linkDebugFrameworkIosSimulatorArm64'.
> Compilation finished with errors

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 46s
22 actionable tasks: 11 executed, 11 up-to-date
igordmn commented 4 months ago

Could you please provide a project in which you have this exception?

while generating iOS framework using gradle assemble I am seeing the below

How do you run it? Via the Gradle panel, running some task? Which task is it?

sureshmaidaragi1919 commented 4 months ago

Could you please provide a project in which you have this exception?

while generating iOS framework using gradle assemble I am seeing the below

How do you run it? Via the Gradle panel, running some task? Which task is it?

Code base is in private repo basically we have Android related functionalities in AndroidMain of KMM project which uses the XML layouts and Constraints layout's.

By using Android Studio IDE run button or Using Assemble as shown in the blow screen shot

Screenshot 2024-03-08 at 11 38 46 AM

shared build.gradle.kts looks like this

plugins {
    alias(libs.plugins.kotlinMultiplatform)
    alias(libs.plugins.androidLibrary)
    alias(libs.plugins.ktorfitPlugin)
    id("org.jetbrains.compose")
    id("dev.icerock.mobile.multiplatform-resources")
    id("kotlin-parcelize")
    id("com.google.dagger.hilt.android") version "2.44" apply false
    id("com.google.devtools.ksp") version "1.9.22-1.0.16"
    kotlin("kapt")

}

kotlin {
    androidTarget {
        compilations.all {
            kotlinOptions {
                jvmTarget = "19"
            }
        }
    }

    listOf(
        iosX64(),
        iosArm64(),
        iosSimulatorArm64()
    ).forEach {
        it.binaries.framework {
            baseName = "pitaraShared"
            isStatic = false
            export("dev.icerock.moko:resources:0.24.0-alpha-5")
            export("dev.icerock.moko:graphics:0.9.0") // toUIColor here
        }

    }

    sourceSets {
        val androidxActivityVersion = extra["androidx.activity.version"] as String
        val androidxAppCompatVersion = extra["androidx.appcompat.version"] as String
        val androidxCoreVersion = extra["androidx.core.version"] as String

        val commonMain by getting {
            dependencies {
                implementation(kotlin("stdlib-common"))
                implementation(compose.runtime)
                implementation(compose.foundation)
                implementation(compose.material)
                api(compose.animation)
                @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
                implementation(compose.components.resources)

                implementation(libs.koin.core)
                implementation(libs.koin.compose)

                api(libs.moko.mvvm.core)
                api(libs.moko.mvvm.compose)
                api(libs.moko.mvvm.flow)
                api(libs.moko.mvvm.flow.compose)

                implementation(libs.napier)

                api(libs.precompose)
                api(compose.material3)
                api(libs.precompose.permissions)

                implementation(libs.datastore.preferences.core) // for key value storage
                implementation(libs.date.time)

                implementation(libs.kotlinx.coroutines.core)
                implementation(libs.kotlin.serialization)
                api(libs.image.loader)
                api(libs.image.loader.extension.moko.resources)
                api(libs.moko.resource)
                api(libs.moko.resource.compose)
                api(libs.moko.media.compose)
                implementation(libs.cashapp.paging.compose.common)
                implementation(libs.cashapp.paging.common)
                implementation(libs.richEditor)
                implementation(libs.skiko)
                implementation(libs.ktorfit)
                implementation(libs.kotlin.serialization)

                implementation(project(":kmm-pw-ui-module"))
                implementation(project(":kmm-pw-core-module"))
                implementation(project(":kmm-pw-player-module"))
            }
        }
        val androidMain by getting {
            dependsOn(commonMain)
            dependencies {
                api(compose.preview)
                api(compose.uiTooling)
                api("androidx.activity:activity-compose:$androidxActivityVersion")
                api("androidx.appcompat:appcompat:$androidxAppCompatVersion")
                api("androidx.core:core-ktx:$androidxCoreVersion")
                implementation(libs.app.update)
                implementation(libs.koin.android)

                // media3 video player
                implementation(libs.media3.exoplayer)
                implementation(libs.media3.ui)
                //android player
                implementation ("com.google.android.exoplayer:exoplayer:2.18.7")
                implementation ("com.google.android.exoplayer:exoplayer-ui:2.18.7")
                implementation ("androidx.constraintlayout:constraintlayout:2.1.4")
                implementation ("com.google.code.gson:gson:2.9.0")
                implementation ("com.github.ExCiteS:apache-commons-codec-shaded:1.11")
                implementation ("io.reactivex:rxandroid:1.2.1")
                implementation ("com.squareup.retrofit2:adapter-rxjava:2.7.1")
                implementation ("androidx.lifecycle:lifecycle-extensions:2.2.0")
                implementation ("androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1")
                implementation ("com.github.instacart:truetime-android:4.0.0.alpha")
                implementation ("com.google.dagger:hilt-android:2.48")
                implementation ("androidx.constraintlayout:constraintlayout-compose:1.0.1")
                kapt {
                    ("com.google.dagger:hilt-android-compiler:2.48")
                }

                implementation("com.squareup.retrofit2:retrofit:2.9.0") {

                }
                implementation("com.squareup.retrofit2:converter-gson:2.9.0") {
                }

                implementation(libs.lifecycle.runtime)
                implementation(libs.lifecycle.process)

                api(libs.lottie)

                implementation(libs.firebase.analytics)
                implementation(libs.gitlive.firebase.commons)
            }
        }
        val iosX64Main by getting
        val iosArm64Main by getting
        val iosSimulatorArm64Main by getting
        val iosMain by creating {
            dependsOn(commonMain)
            dependencies {
                implementation(libs.kotlinx.coroutines.core)
            }

            iosX64Main.dependsOn(this)
            iosArm64Main.dependsOn(this)
            iosSimulatorArm64Main.dependsOn(this)
        }
    }
}

android {
    namespace = "com.kmmpwpitara"
    compileSdk = 34
    defaultConfig {
        minSdk = 24
    }
    kotlin {
        jvmToolchain(19)
    }
}

dependencies {
    with("de.jensklingenberg.ktorfit:ktorfit-ksp:1.12.0") {
        add("kspCommonMainMetadata", this)
        add("kspAndroid", this)
        add("kspAndroidTest", this)
        add("kspIosX64", this)
        add("kspIosX64Test", this)
        add("kspIosArm64", this)
        add("kspIosArm64Test", this)
        add("kspIosSimulatorArm64", this)
        add("kspIosSimulatorArm64Test", this)
    }
}
project.afterEvaluate {
    tasks.named("kspKotlinIosSimulatorArm64") {
        dependsOn("generateMRiosSimulatorArm64Main")
    }
    tasks.named("kspKotlinIosX64") {
        dependsOn("generateMRiosX64Main")
    }
    tasks.named("kspKotlinIosArm64") {
        dependsOn("generateMRiosArm64Main")
    }
}
igordmn commented 4 months ago

Code base is in private repo basically

Can you make a minimal project with the issue? I tried the provided build.gradle.kts, but it depends on many other things.

The error is vague and it is difficult to fix if it isn't reproducible. It might be a non-Compose plugin, or a conflict of Compose plugin with some other plugin.

clonedSemicolon commented 3 months ago

Did you find any workaround? Facing the same issue

igordmn commented 3 months ago

Did you find any workaround? Facing the same issue

Can you provide the project or a minimal version with the issue on which we can look?

anwarpro commented 3 months ago

For my project, the buildconfig library is causing the issue.

https://github.com/gmazzo/gradle-buildconfig-plugin/issues/149

gmazzo commented 3 months ago

After some research, I realized the issue is that for some reason, the composeApp.klib content is not generated with lowercase (expected), that's the reason why is failing:

Correct Failure
image image

I've pushed the code here: https://github.com/gmazzo/kmp-compose-issue-4444

If you comment the line at https://github.com/gmazzo/kmp-compose-issue-4444/blob/main/composeApp/build.gradle.kts#L11 then the .klib gets generated with the right casing, but how this plugin is indirectly? triggering the issue, is something I couldn't figure out 🤷‍♂️

To reproduce the issue, run:

./gradlew linkDebugFrameworkIosSimulatorArm64 
gmazzo commented 3 months ago

but how this plugin is indirectly? triggering the issue, is something I couldn't figure out 🤷‍♂️

Update: if this issue is only happening when combined with https://github.com/gmazzo/gradle-buildconfig-plugin, the root cause is a package clash: image

The buildconfig plugin defaults to the project's name (without any mangling) while compose-multiplatform does it to a lowercase of it: image

A quick workaround will be set it packageName explicitly, for instance:

buildConfig {
    packageName = "kotlinproject.composeapp"
}