You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KMM中composeApp:embedAndSignAppleFrameworkForXcode未更新问题求助

解决Xcode嵌入ComposeApp模块的构建问题

核心问题排查与修复

1. 彻底清理缓存(解决代码更新不生效+模块找不到)

  • Xcode端:
    1. 执行Cmd+Shift+K清理当前构建文件夹
    2. 执行Cmd+Option+Shift+K清理Derived Data,或手动删除~/Library/Developer/Xcode/DerivedData下对应项目的文件夹(自动清理可能有残留)
  • Gradle端:
    1. 在Android Studio中执行File -> Invalidate Caches...,选择「Invalidate and Restart」
    2. 终端执行cd 项目根目录 && ./gradlew clean,必要时可删除~/.gradle/caches下的缓存文件

2. 检查「Compile Kotlin framework」脚本有效性

  • 验证路径正确性:在脚本开头添加调试命令,确认是否进入了正确的项目根目录:
    echo "Current directory: $(pwd)"
    ls -la # 查看是否存在composeApp文件夹
    cd "$SRCROOT/.."
    echo "After cd directory: $(pwd)"
    ls -la
    
    如果输出里没有composeApp,说明$SRCROOT的路径不对,需手动调整cd的目标路径(比如改成cd "$SRCROOT/../../",根据项目结构调整)
  • 排查环境变量拦截:脚本中如果OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED被设为YES,会直接跳过Gradle构建。在脚本开头添加:
    echo "OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED: $OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED"
    
    如果输出为YES,去Xcode的Build Settings中搜索该环境变量,将其删除或设为NO

3. 调整Xcode构建顺序与依赖设置

  • 确保脚本优先执行:在Xcode的Build Phases中,将「Compile Kotlin framework」脚本拖动到Compile Sources上方,保证Kotlin框架在iOS代码编译前生成
  • 检查框架搜索路径:在Build Settings中搜索Framework Search Paths,确认包含以下路径(根据模块名调整):
    $(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)
    
    勾选Recursive,确保Xcode能找到生成的框架

在Android Studio手动运行Gradle脚本关联

完全可以手动触发框架构建,步骤如下:

  1. 打开Android Studio的Gradle面板(右侧边栏)
  2. 展开项目 -> composeApp -> Tasks -> apple
  3. 找到并双击embedAndSignAppleFrameworkForXcode任务,等待执行完成
  4. 回到Xcode重新构建即可(此时Xcode会使用AS生成的最新框架)

如果手动运行后Xcode仍找不到模块,可以删除Xcode中已添加的ComposeApp.framework引用,重新从composeApp/build/xcode-frameworks/当前配置/对应SDK路径下添加框架。


内容的提问来源于stack exchange,提问作者Jakub Kostka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 14:37:04