(未找到名为“iosMain”的KotlinSourceSet,)如何将android作为构建目标添加到Kotlin多平台项目中

oknrviil  于 2024-01-04  发布在  Android
关注(0)|答案(2)|浏览(145)

在网站stackoverflow.com上有这样一个主题:KotlinSourceSet with name 'androidMain' not found.
我有一个类似的问题:“未找到名为'iosMain'的KotlinSourceSet”。
我不太明白怎么解决,麻烦你帮帮忙。[![任务1][1][1] [![任务2][2]][2]
更新:解决了,现在我得到了:内置iOS应用程序:代码65失败.我应该怎么做来修复它?

yptwkmov

yptwkmov1#

泛型ios源集已被弃用,您现在必须更显式地指定目标。这意味着要添加目标而不是添加泛型ios(),您需要指定单独的目标:

  1. kotlin {
  2. androidTarget {
  3. compilations.all {
  4. kotlinOptions {
  5. jvmTarget = "1.8"
  6. }
  7. }
  8. }
  9. listOf(
  10. iosX64(),
  11. iosArm64(),
  12. iosSimulatorArm64()
  13. ).forEach {
  14. it.binaries.framework {
  15. baseName = "shared"
  16. }
  17. }
  18. // ios() // -> This has been deprecated
  19. iosArm64()
  20. iosX64()
  21. iosSimulatorArm64()

字符串
在指定源集时,添加它们的main/test目标:

  1. sourceSets {
  2. ...
  3. val iosArm64Main by getting {
  4. dependencies {
  5. ...
  6. }
  7. }
  8. val iosArm64Test by getting {
  9. dependencies {
  10. ...
  11. }
  12. }
  13. val iosX64Main by getting {
  14. dependencies {
  15. ...
  16. }
  17. }
  18. val iosSimulatorArm64Main by getting {
  19. dependencies {
  20. ...
  21. }
  22. }

展开查看全部
e4eetjau

e4eetjau2#

我也遇到了同样的问题。下面的代码对我有效。baseName可以是任何字符串。

  1. listOf(
  2. iosX64(),
  3. iosArm64(),
  4. iosSimulatorArm64()
  5. ).forEach { iosTarget ->
  6. iosTarget.binaries.framework {
  7. baseName = "ComposeApp"
  8. isStatic = true
  9. }
  10. }
  11. sourceSets {
  12. val iosX64Main by getting
  13. val iosArm64Main by getting
  14. val iosSimulatorArm64Main by getting
  15. val iosMain by creating {
  16. dependsOn(commonMain.get())
  17. iosX64Main.dependsOn(this)
  18. iosArm64Main.dependsOn(this)
  19. iosSimulatorArm64Main.dependsOn(this)
  20. }
  21. }

字符串

展开查看全部

相关问题