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

嵌套自定义框架时出现dyld「Library not loaded」加载错误

解决iOS嵌套Framework的dyld加载错误问题

你遇到的dyld错误本质是:主应用ParentApp只链接了POSSampleFramework,但POSSampleFramework依赖的PaymentSampleFramework没有被打包进主应用的Bundle,导致启动时dyld找不到这个依赖库。要实现仅嵌入POSSampleFramework就自动包含其内部依赖,可按以下步骤配置:

1. 配置POSSampleFramework的嵌入依赖设置

  • 打开POSSampleFramework的Target设置,切换到Build Phases标签页
  • 如果没有Embed Frameworks阶段,点击左上角的+按钮,选择New Copy Files Phase,将阶段名称改为Embed Frameworks,并把Destination设置为Frameworks
  • 将PaymentSampleFramework添加到这个Embed Frameworks阶段,同时勾选Code Sign On Copy选项
  • 进入PaymentSampleFramework的Build Settings,将Skip Install设置为YES,避免它被单独安装到主应用的Frameworks目录外

2. 调整POSSampleFramework的链接路径设置

  • 在POSSampleFramework的Build Settings中,找到Other Linker Flags,添加参数-rpath @executable_path/Frameworks,确保dyld能正确定位到嵌入的子Framework
  • 确认Framework Search Paths包含PaymentSampleFramework的所在路径,保证编译时能正常找到依赖

3. 主应用ParentApp的简化配置

  • 主应用只需要在General标签页的Frameworks, Libraries, and Embedded Content中添加POSSampleFramework,并设置为Embed & Sign
  • 不需要将PaymentSampleFramework添加到主应用的任何配置中
  • 如果你的Framework使用Swift编写,确保主应用的Build Settings中Always Embed Swift Standard Libraries设置为YES

4. 清理重建项目

  • 执行Cmd+Shift+K清理项目缓存,再用Cmd+B重新构建整个工作区
  • 必要时删除Derived Data:通过Xcode的Settings -> Locations -> Derived Data打开对应文件夹,删除当前项目的缓存目录

完成以上配置后,POSSampleFramework会自动将PaymentSampleFramework打包进主应用的Bundle,启动时dyld就能正常加载依赖库,无需主应用单独添加所有内部依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 14:25:15