iOS 模拟器中 KMM 项目构建失败

问题描述 投票:0回答:1

使用 Cocoapods 依赖项在 Kotlin 多平台项目中工作。

这些是构建输出日志

LD /Users/andrea/Folders/KMP/ComposeWeather/build/ios/Debug-iphonesimulator/ComposeWeather.app/ComposeWeather 正常(在项目“iosApp”的目标“iosApp”中) cd /Users/andrea/Folders/KMP/ComposeWeather/iosApp /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -reproducible -target x86_64-apple-ios14.1-simulator -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.2.sdk -O0 -L/Users/andrea/Folders/KMP/ComposeWeather/build/ios/EagerLinkingTBDs/Debug-iphonesimulator -L/Users/andrea/Folders/KMP/ComposeWeather/build/ios/Debug-iphonesimulator -F/Users/andrea/Folders/KMP/ComposeWeather/build/ios/EagerLinkingTBDs/Debug-iphonesimulator -F/Users/andrea/Folders/KMP/ComposeWeather/build/ios/Debug-iphonesimulator -F/Users/andrea/Folders/KMP/ComposeWeather/iosApp/../shared/build/xcode-frameworks/Debug/iphonesimulator17.2 -F/Users/andrea/Folders/KMP/ComposeWeather/iosApp/../composeApp/build/xcode-frameworks/Debug/iphonesimulator17.2 -filelist /Users/andrea/Folders/KMP/ComposeWeather/build/ios/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal/x86_64/ComposeWeather.LinkFileList -Xlinker -rpath -Xlinker /usr/lib/swift -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/andrea/Folders/KMP/ComposeWeather/build/ios/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal/x86_64/ComposeWeather_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/andrea/Folders/KMP/ComposeWeather/build/ios/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal/x86_64/ComposeWeather.swiftmodule -ObjC -lc++ -framework composeApp -framework composeApp -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/andrea/Folders/KMP/ComposeWeather/build/ios/iosApp.build/Debug-iphonesimulator/iosApp.build/ComposeWeather .app-模拟.xcent -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __ents_der -Xlinker /Users/andrea/Folders/KMP/ComposeWeather/build/ios/iosApp.build/Debug-iphonesimulator/iosApp.build/ComposeWeather.app-Simulated.xcent.der -framework Pods_iosApp -Xlinker -no_adhoc_codesign -Xlinker -dependency_info -Xlinker /Users/andrea/Folders/KMP/ComposeWeather/build/ios/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal/x86_64/ComposeWeather_dependency_info.dat -o /Users/andrea/Folders/KMP/ComposeWeather/build/ios/Debug-iphonesimulator/ComposeWeather.app/ComposeWeather

ld:警告:搜索路径 '/Users/andrea/Folders/KMP/ComposeWeather/iosApp/../shared/build/xcode-frameworks/Debug/iphonesimulator17.2' 没有找到

ld:找不到框架“Pods_iosApp”clang:错误:链接器命令 失败,退出代码为 1(使用 -v 查看调用)

** 构建失败 **

以下构建命令失败:

LD /Users/andrea/Folders/KMP/ComposeWeather/build/ios/Debug-iphonesimulator/ComposeWeather.app/ComposeWeather 正常(在项目“iosApp”的目标“iosApp”中)

(1 次失败)警告:运行脚本构建阶段“编译 Kotlin 框架” 将在每次构建期间运行,因为它没有指定任何 输出。要解决此警告,请将输出依赖项添加到 脚本阶段,或者通过取消选中将其配置为在每个构建中运行 脚本阶段的“基于依赖分析”。 (在目标 来自项目“iosApp”的“iosApp”)

build.gradle.kts 中的 Cocoapods 脚本

cocoapods {
        version = "1.0.0"
        summary = "Some description for the Shared Module"
        homepage = "Link to the Shared Module homepage"
        ios.deploymentTarget = "16.0"
        podfile = project.file("../iosApp/Podfile")
        framework {
            baseName = "composeApp"
            isStatic = true
        }

        // Maps custom Xcode configuration to NativeBuildType
        xcodeConfigurationToNativeBuildType["CUSTOM_DEBUG"] = NativeBuildType.DEBUG
        xcodeConfigurationToNativeBuildType["CUSTOM_RELEASE"] = NativeBuildType.RELEASE
    }

感谢是否有任何帮助或线索,我该如何解决这个问题。 注意:它适用于 Android 模拟器

ios xcode build.gradle kotlin-multiplatform
1个回答
0
投票

这里的错误:

'/Users/andrea/Folders/KMP/ComposeWeather/iosApp/../shared/build/xcode-frameworks/Debug/iphonesimulator17.2'未找到

您能否检查一下您是否安装了模拟器设备(您要部署到的目标设备)?

您还可以检查一下您的共享模块的 gradle 文件中是否正确设置了 iOSX64 目标吗?

你应该有这样的东西:

kotlin{

  iOSArm64()
  iOSX64()

  commonMain(){

  }


  val x64 = iOSX64 by getting
  val arm64 = iOSArm64 by getting

  iOSMain(){
      dependsOn(commonMain)
 
      // makes sure all iOSMain source sets are compiled into target folders
      x64.dependsOn(this)  
      arm64.dependsOn(this)
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.