IOS Build failed with kotlin 2.1.0 because of voyager
Voyager Version -> 1.1.0-beta03
Error occurred while optimizing an expression:
CALL 'public abstract fun <set-value> (<set-?>: T of kotlinx.coroutines.flow.MutableStateFlow): kotlin.Unit declared in kotlinx.coroutines.flow.MutableStateFlow' type=kotlin.Unit origin=EQ
$this: CALL 'internal final fun <get-lastScreenModelKey> (): kotlinx.coroutines.flow.MutableStateFlow<kotlin.String?{ cafe.adriel.voyager.core.model.ScreenModelKey? }> declared in cafe.adriel.voyager.core.model.ScreenModelStore' type=kotlinx.coroutines.flow.MutableStateFlow<kotlin.String?{ cafe.adriel.voyager.core.model.ScreenModelKey? }> origin=GET_PROPERTY
$this: GET_VAR 'val this: cafe.adriel.voyager.core.model.ScreenModelStore [val] declared in cafe.adriel.voyager.koin.koinScreenModel' type=cafe.adriel.voyager.core.model.ScreenModelStore origin=null
<set-?>: GET_VAR 'val key: kotlin.String{ cafe.adriel.voyager.core.model.ScreenModelKey } [val] declared in cafe.adriel.voyager.koin.koinScreenModel' type=kotlin.String{ cafe.adriel.voyager.core.model.ScreenModelKey } origin=null
java.lang.AssertionError: Error occurred while optimizing an expression:
CALL 'public abstract fun <set-value> (<set-?>: T of kotlinx.coroutines.flow.MutableStateFlow): kotlin.Unit declared in kotlinx.coroutines.flow.MutableStateFlow' type=kotlin.Unit origin=EQ
$this: CALL 'internal final fun <get-lastScreenModelKey> (): kotlinx.coroutines.flow.MutableStateFlow<kotlin.String?{ cafe.adriel.voyager.core.model.ScreenModelKey? }> declared in cafe.adriel.voyager.core.model.ScreenModelStore' type=kotlinx.coroutines.flow.MutableStateFlow<kotlin.String?{ cafe.adriel.voyager.core.model.ScreenModelKey? }> origin=GET_PROPERTY
$this: GET_VAR 'val this: cafe.adriel.voyager.core.model.ScreenModelStore [val] declared in cafe.adriel.voyager.koin.koinScreenModel' type=cafe.adriel.voyager.core.model.ScreenModelStore origin=null
<set-?>: GET_VAR 'val key: kotlin.String{ cafe.adriel.voyager.core.model.ScreenModelKey } [val] declared in cafe.adriel.voyager.koin.koinScreenModel' type=kotlin.String{ cafe.adriel.voyager.core.model.ScreenModelKey } origin=null
at org.jetbrains.kotlin.ir.interpreter.transformer.IrConstEvaluationContext.canBeInterpreted(IrConstEvaluationContext.kt:74)
at org.jetbrains.kotlin.ir.interpreter.transformer.IrConstExpressionTransformer.visitCall(IrConstExpressionTransformer.kt:39)
at org.jetbrains.kotlin.ir.interpreter.transformer.IrConstExpressionTransformer.visitCall(IrConstExpressionTransformer.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrCall.accept(IrCall.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:20)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.expressions.IrContainerExpression.transformChildren(IrContainerExpression.kt:26)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitContainerExpression(IrElementTransformer.kt:139)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitContainerExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitBlock(IrElementTransformer.kt:142)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitInlinedFunctionBlock(IrElementTransformer.kt:151)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitInlinedFunctionBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitInlinedFunctionBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrInlinedFunctionBlock.accept(IrInlinedFunctionBlock.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:20)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.expressions.IrContainerExpression.transformChildren(IrContainerExpression.kt:26)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitContainerExpression(IrElementTransformer.kt:139)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitContainerExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitBlock(IrElementTransformer.kt:142)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitReturnableBlock(IrElementTransformer.kt:148)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitReturnableBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitReturnableBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrReturnableBlock.accept(IrReturnableBlock.kt:23)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:20)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.expressions.IrContainerExpression.transformChildren(IrContainerExpression.kt:26)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitContainerExpression(IrElementTransformer.kt:139)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitContainerExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitBlock(IrElementTransformer.kt:142)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrBlock.accept(IrBlock.kt:18)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrReturn.transformChildren(IrReturn.kt:31)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitReturn(IrElementTransformer.kt:249)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitReturn(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitReturn(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrReturn.accept(IrReturn.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:20)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.expressions.IrContainerExpression.transformChildren(IrContainerExpression.kt:26)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitContainerExpression(IrElementTransformer.kt:139)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitContainerExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitBlock(IrElementTransformer.kt:142)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitInlinedFunctionBlock(IrElementTransformer.kt:151)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitInlinedFunctionBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitInlinedFunctionBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrInlinedFunctionBlock.accept(IrInlinedFunctionBlock.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:20)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.expressions.IrContainerExpression.transformChildren(IrContainerExpression.kt:26)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitContainerExpression(IrElementTransformer.kt:139)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitContainerExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitBlock(IrElementTransformer.kt:142)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitReturnableBlock(IrElementTransformer.kt:148)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitReturnableBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitReturnableBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrReturnableBlock.accept(IrReturnableBlock.kt:23)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:20)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.expressions.IrContainerExpression.transformChildren(IrContainerExpression.kt:26)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitContainerExpression(IrElementTransformer.kt:139)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitContainerExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitBlock(IrElementTransformer.kt:142)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitBlock(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrBlock.accept(IrBlock.kt:18)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall.transformChildren(IrTypeOperatorCall.kt:33)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitTypeOperator(IrElementTransformer.kt:272)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitTypeOperator(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitTypeOperator(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall.accept(IrTypeOperatorCall.kt:26)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrReturn.transformChildren(IrReturn.kt:31)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitExpression(IrElementTransformer.kt:99)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitExpression(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitReturn(IrElementTransformer.kt:249)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitReturn(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.visitors.IrTransformer.visitReturn(IrTransformer.kt:14)
at org.jetbrains.kotlin.ir.expressions.IrReturn.accept(IrReturn.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:20)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.expressions.IrContainerExpression.transformChildren(IrContainerExpression.kt:26)
the same issue was already opened in here. I didin't notice
Did you find a way how to fix it?
Did you find a way how to fix it?
Unfortunately, I am switching to Decompose, which is being really helpful. Voyager is a great library, but seems it is not ready for production in the earlier releases.
But voyager works on desktop, decompose doesn't, as I know.
But voyager works on desktop, decompose doesn't, as I know.
It does work in Desktop with JVM. Not sure if it works in WASM, but that is in alpha (I guess). https://arkivanov.github.io/Decompose/faq/
On Desktop it only works with mac os, but I need windows support.
On Desktop it only works with mac os, but I need windows support.
Are you sure? Desktop apps built with Compose run on the JVM, so they should work on Windows, macOS, or even Linux without any issues. Maybe there’s just a setup problem on Windows?
EDIT: Supported multiplatform targets: Android, JVM/Desktop, Native/iOS, Native/macOS, JS/Canvas and JS/Wasm.
I get this error when trying to use Firebase with Voyar koin in common, try to remove voyar koin and just use insert-koin.io
same issue
Same here 🥲
I've switched to decompose, it is much solid library than voyager for now.
I found a solution. I had two projects, both using Kotlin version 2.1.0. One of them was compiling on iOS, while the other was not. After searching for differences, I noticed that the only difference was that the compiling project had implemented the Rinku library (version 1.3.2) from this GitHub repository. I added this library to the non-compiling project, and now it compiles on iOS as well. It’s a ridiculous solution, but it works!
I found one solution. I had 2 projects. kotlin version 2.1.0 on both of them. one is compiling on iOS, other not )). then searched difference. there is only one difference: compiling app implemented rinku (https://github.com/theolm/Rinku) lib (version 1.3.2). I added this app to next one, now it is compiling on iOS also )). ridiculously solution but working ))
https://github.com/adrielcafe/voyager/issues/520#issuecomment-2673582112