walt-id / waltid-identity

All-in-one open-source identity and wallet toolkit.
Apache License 2.0
119 stars 44 forks source link

Dependency in KMP #491

Closed morand1 closed 1 month ago

morand1 commented 3 months ago

Hi, I'm trying to use library in my Kotlin Multiplatform project and as I understand I should use id.walt:waltid-sdjwt-jvm module and repository: maven("https://maven.waltid.dev/") is that correct? Because samples in README, sample project etc. are not consistent and it is hard to understand it. Anyway I'm getting error while trying to use this dependency.

mikeplotean commented 3 months ago

hi @morand1, that's correct, the repository to use is https://maven.waltid.dev. If you intend to use the dependency for the jvm sourceSet then it should be specified as you did (id.walt:waltid-sdjwt-jvm:<version>, where version = 0.3.1, for example). However, in a kmp project you can specify it in the common sourceSet. In this case you don't need the plaform suffix - id.walt:waltid-sdjwt:0.3.1. Could you share the error you're getting?

morand1 commented 3 months ago

@mikeplotean I tried with maven url: https://maven.waltid.dev/releases and it seems to be working now in android project but in common I'm getting:

Execution failed for task ':composeApp:transformNativeMainCInteropDependenciesMetadataForIde'.
> Could not resolve all files for configuration ':composeApp:iosArm64CompilationDependenciesMetadata'.
   > Could not resolve id.walt:waltid-sdjwt:0.3.1.
     Required by:
         project :composeApp
      > No matching variant of id.walt:waltid-sdjwt:0.3.1 was found. The consumer was configured to find a library for use during 'kotlin-metadata', preferably optimized for non-jvm, as well as attribute 'org.jetbrains.kotlin.native.target' with value 'ios_arm64', attribute 'org.jetbrains.kotlin.platform.type' with value 'native' but:
          - Variant 'jsApiElements-published' declares a library for use during 'kotlin-api':
              - 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_arm64')
                  .......
waltkb commented 3 months ago

There currently is no iosArm64 version. We are working towards this, but this will still take a couple of weeks.

github-actions[bot] commented 1 month ago

This issue has been marked as stale.