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

Xcode 15中KMM项目SwiftUI预览及模拟器异常问题

解决KMM项目在Xcode 15中SwiftUI预览失效及模拟器运行失败问题

问题复现

KMM项目初期正常,后续出现SwiftUI预览无法使用(模拟器仍可运行),报错:

Task :shared:embedAndSignAppleFrameworkForXcode FAILED
error: /Users/ ... .app/Frameworks: Operation not permitted
What went wrong:
Execution failed for task ':shared:embedAndSignAppleFrameworkForXcode'.
Cannot access output property 'destDir' of task ':shared:embedAndSignAppleFrameworkForXcode'. Accessing unreadable inputs or outputs is not supported. Declare the task as untracked by using Task.doNotTrackState().
java.nio.file.FileSystemException: /Users/ ... .app/Frameworks: Operation not permitted

次日进一步出现模拟器无法运行,提示“Failed to create directory '..../Frameworks'”。


解决方案

  • 修复目录权限问题

    1. 定位报错中的.app/Frameworks路径,通过终端执行命令赋予读写权限:
      chmod -R 755 /Users/你的用户名/项目路径/.../.app/Frameworks
      
    2. 检查系统隐私设置:打开「系统设置-隐私与安全性-文件与文件夹」,确保Xcode拥有项目所在目录的访问权限。
  • 清理构建缓存

    1. Xcode端:按Cmd+Shift+K清理当前构建,再按Cmd+Option+Shift+K彻底清除Derived Data;
    2. Gradle端:在项目根目录执行:
      ./gradlew clean
      
      也可手动删除~/.gradle/caches目录下的缓存文件。
  • 调整Gradle任务配置
    在shared模块的build.gradle.kts中,为embedAndSignAppleFrameworkForXcode任务添加状态追踪禁用配置:

    tasks.named("embedAndSignAppleFrameworkForXcode") {
        doNotTrackState()
    }
    

    同步Gradle后重新构建项目。

  • 确保版本兼容性

    1. 更新Android Studio的KMM插件至最新版本;
    2. 将Gradle版本升级至8.3及以上,适配Xcode 15的构建逻辑。
  • 重新生成Xcode项目文件
    在项目根目录执行命令重新生成Xcode配置:

    ./gradlew generateXcodeProject
    

    之后打开项目的.xcworkspace文件(而非.xcodeproj)进行构建。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:42:37