我正在做一个Kotlin多平台移动项目,在try 构建iOS端时,我遇到了与脚本构建阶段相关的构建失败.以下是我收到的警告:

warning: Run script build phase 'Run Script' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'iosApp' from project 'iosApp')

后面紧跟一条构建失败消息:

The following build commands failed:
PhaseScriptExecution Run\ Script /Users/moataz/AndroidStudioProjects/MyApplication/build/ios/iosApp.build/Debug-iphonesimulator/iosApp.build/Script-7555FFB5242A651A00829871.sh (in target 'iosApp' from project 'iosApp') (1 failure)

我不确定如何处理此警告和环境中的后续错误.在Android Studio中构建KMM项目的iOS部分时,有人遇到过类似的问题吗?如有任何关于如何解决这个问题或进一步诊断问题的建议,我们将不胜感激.

推荐答案

将此代码添加到您的构建.gradle.kts文件的"共享模块"中:

if (System.getenv("XCODE_VERSION_MAJOR") == "1500") { 
    linkerOpts += "-ld64"
}

就像这样:

listOf(
    iosX64(),
    iosArm64(),
    iosSimulatorArm64()
).forEach {
    it.binaries.framework {
        baseName = "shared"
        if (System.getenv("XCODE_VERSION_MAJOR") == "1500") {
            linkerOpts += "-ld64"
        }
    }
}

在forEach循环中.这是一个临时的修复,它应该在Kotlin 1.9.10中修复,但我没有 Select ,所以在此期间,这个修复使iOS版本可构建!

来源:https://youtrack.jetbrains.com/issue/KT-60230#focus=Comments-27-7921542.0-0

编辑:Kotlin,不是Gradle 1.9.10!

Android相关问答推荐

Android配置设置. gradle不同应用风格

Android意图过滤器不限制应用程序仅处理YouTube链接

组成底部导航栏,自定义形状,周围透明

Android库中的kotlinCompilerExtensionVersion

穿戴与iPhone连接的安卓操作系统

如何在使用带有底部导航组件的片段管理器时更改片段工具栏的标签

返回并再次打开webview时webview无法打开相机

在 kotlin 上向适配器添加绑定视图功能

使用不同的gradle文件导入外部库

尽管我在onCreate()期间已经初始化,但仍出现未初始化的late init变量错误

运行设备选项卡在 Android Studio 中自动打开

围绕动态大小的内容包装 Jetpack Compose Row?

Kotlin File(path).walkTopDown() 找不到文件

Jetpack Compose 部分或开放侧边框

如何在 Jetpack Compose 中设置行宽等于 TextField 的宽度?

Int 传递给 Intent 但Android工作室说我传递了一个字符串

如何在 Jetpack Compose 中填充矢量图像的背景?

Сan 无法从 Firestore 获取数据,没有错误

如何让用户与任意应用程序共享文件?

如何满足设备内框架的无效 Wear OS 屏幕截图Wear OS 表盘策略违规?