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

Swift嵌套Framework运行崩溃:路径找不到问题求助

嵌套Swift Framework加载失败解决方案

问题重现

运行包含嵌套Framework的Swift应用时崩溃,报错找不到innerFramework的二进制文件:

'/Users/user/Library/Developer/Xcode/DerivedData/temp/Build/Products/Debug/frameworkTest.app/Contents/Frameworks/myFramework.framework/Versions/A/../Frameworks/innerFramework.framework/Versions/A/innerFramework'
(no such file)

访达中能看到对应路径的文件,但应用搜索路径无法识别。


解决步骤

  • 检查Embed & Sign配置

    • 主应用frameworkTest:选中myFramework,在General标签的Frameworks, Libraries, and Embedded Content里,将Embed设置为Embed & Sign;不要直接添加innerFramework到主应用。
    • myFramework:选中innerFramework,同样设置Embed为Embed & Sign,确保Xcode打包时把innerFramework嵌套进myFramework的Frameworks目录。
  • 修正Framework搜索路径

    • 主应用frameworkTest的Framework Search Paths保留$(inherited)和$(PROJECT_DIR)/frameworkTest即可,无需添加innerFramework的路径。
    • myFramework的Framework Search Paths只保留$(inherited)和$(PROJECT_DIR)/myFramework/Frameworks,设为非递归模式,多余的innerFramework单独路径可以删掉。
  • 调整Build Phases依赖顺序

    • 主应用Build Phases -> Target Dependencies:只保留myFramework,innerFramework不需要在这里出现。
    • myFramework的Build Phases -> Target Dependencies:添加innerFramework,保证编译时先构建innerFramework再构建myFramework。
  • 清理缓存后重新构建

    • 执行Product -> Clean Build Folder(快捷键Shift+Cmd+K)
    • 手动删除DerivedData目录:/Users/user/Library/Developer/Xcode/DerivedData/temp
    • 重新执行Product -> Build后再运行应用。
  • 验证Framework目录结构

    • 确认myFramework.framework/Frameworks/innerFramework.framework/Versions/A/innerFramework路径下的二进制文件存在,且文件权限正常(具备可执行权限)。

内容的提问来源于stack exchange,提问作者Navaneeth A S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 07:57:28