https://kotlinlang.org logo
#fritz2
Title
# fritz2
s

Sachinda Liyanaarachchi

08/19/2022, 6:14 PM
implementation("dev.fritz2:core:$fritz2Version")
causing issue when trying to run iosApp:
Copy code
* What went wrong:
Execution failed for task ':shared:compileKotlinIosSimulatorArm64'.
> Could not resolve all files for configuration ':shared:iosSimulatorArm64CompileKlibraries'.
   > Could not resolve dev.fritz2:core:1.0-RC1.
     Required by:
         project :shared
      > No matching variant of dev.fritz2:core:1.0-RC1 was found. The consumer was configured to find a usage of 'kotlin-api' of a library, preferably optimized for non-jvm, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'native', attribute 'org.jetbrains.kotlin.native.target' with value 'ios_simulator_arm64' but:
          - Variant 'jsIrApiElements-published' capability dev.fritz2:core:1.0-RC1 declares a usage of 'kotlin-api' of a library:
              - Incompatible because this component declares a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'js' and the consumer needed a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'native'
              - Other compatible attributes:
                  - Doesn't say anything about its target Java environment (preferred optimized for non-jvm)
                  - Doesn't say anything about org.jetbrains.kotlin.native.target (required 'ios_simulator_arm64')
          - Variant 'jsIrRuntimeElements-published' capability dev.fritz2:core:1.0-RC1 declares a library:
              - Incompatible because this component declares a usage of 'kotlin-runtime' of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'js' and the consumer needed a usage of 'kotlin-api' of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'native'
              - Other compatible attributes:
                  - Doesn't say anything about its target Java environment (preferred optimized for non-jvm)
                  - Doesn't say anything about org.jetbrains.kotlin.native.target (required 'ios_simulator_arm64')
          - Variant 'jsLegacyApiElements-published' capability dev.fritz2:core:1.0-RC1 declares a usage of 'kotlin-api' of a library:
              - Incompatible because this component declares a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'js' and the consumer needed a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'native'
              - Other compatible attributes:
                  - Doesn't say anything about its target Java environment (preferred optimized for non-jvm)
                  - Doesn't say anything about org.jetbrains.kotlin.native.target (required 'ios_simulator_arm64')
          - Variant 'jsLegacyRuntimeElements-published' capability dev.fritz2:core:1.0-RC1 declares a library:
              - Incompatible because this component declares a usage of 'kotlin-runtime' of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'js' and the consumer needed a usage of 'kotlin-api' of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'native'
              - Other compatible attributes:
                  - Doesn't say anything about its target Java environment (preferred optimized for non-jvm)
                  - Doesn't say anything about org.jetbrains.kotlin.native.target (required 'ios_simulator_arm64')
          - Variant 'jvmApiElements-published' capability dev.fritz2:core:1.0-RC1 declares an API of a library:
              - Incompatible because this component declares a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm' and the consumer needed a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'native'
              - Other compatible attributes:
                  - Doesn't say anything about its target Java environment (preferred optimized for non-jvm)
                  - Doesn't say anything about org.jetbrains.kotlin.native.target (required 'ios_simulator_arm64')
          - Variant 'jvmRuntimeElements-published' capability dev.fritz2:core:1.0-RC1 declares a runtime of a library:
              - Incompatible because this component declares a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm' and the consumer needed a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'native'
              - Other compatible attributes:
                  - Doesn't say anything about its target Java environment (preferred optimized for non-jvm)
                  - Doesn't say anything about org.jetbrains.kotlin.native.target (required 'ios_simulator_arm64')
          - Variant 'metadataApiElements' capability dev.fritz2:core:1.0-RC1 declares a usage of 'kotlin-api' of a library:
              - Incompatible because this component declares a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'common' and the consumer needed a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'native'
              - Other compatible attributes:
                  - Doesn't say anything about its target Java environment (preferred optimized for non-jvm)
                  - Doesn't say anything about org.jetbrains.kotlin.native.target (required 'ios_simulator_arm64')
I cannot exclude this because lenses is used in models in CommonMain
b

Big Chungus

08/19/2022, 8:36 PM
No way around it unless you want to write your own expect/actual glue
Fritz2 is js lib and as such doesn't have ios artefacts for js+ios common main
I recommend extracting your js ui into a separate module
i.e. ios-app, js-app and common modules, where apps depend on common module (that targets both platforms)
That way you're a lot more flexible on what libs you can use for ui
s

Sachinda Liyanaarachchi

08/20/2022, 1:53 AM
okay thanks!
10 Views