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

基于Realm的Swift应用真机启动报错dyld: Library not loaded求助

解决真机上Realm框架加载失败的问题

针对你遇到的dyld: Library not loaded: @rpath/Realm.framework/Realm错误,结合Xcode 9和iOS 11的环境,给你几个精准的排查修复步骤:

  • 确认Embedded Binaries和Linked Frameworks的配置一致性
    打开项目的Target设置,切换到General标签:

    • 检查Embedded Binaries里是否有Realm.framework,且状态是Embed & Sign
    • 同时确认Linked Frameworks and Libraries里也存在Realm.framework,如果没有,点击+添加进来,确保两个列表的条目一致。很多时候手动拖入框架时会漏掉其中一个。
  • 验证Run Script构建阶段的正确性
    切换到Build Phases标签,找到你添加的Realm脚本:

    • 脚本内容必须是:
      bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"
      
    • 确保这个脚本放在Embed Frameworks之后(如果有这个阶段的话),且不要勾选Run script only when installing——这个选项会导致真机构建时跳过脚本,而脚本的作用是剥离多余的架构,不执行的话就会出现加载失败。
    • 另外要确认这个脚本是添加到主应用目标的Build Phases里,而不是单元测试目标。
  • 检查Framework Search Paths的配置
    切换到Build Settings标签,搜索Framework Search Paths:

    • 确保路径包含Realm.framework所在的目录,比如你把框架拖到了项目根目录,就添加$(SRCROOT)并设置为recursive(递归)。路径错误会导致Xcode找不到框架,无法正确嵌入。
  • 清理缓存并重装应用

    • 先删除设备上已安装的应用
    • 在Xcode里执行Product > Clean Build Folder(快捷键Command+Shift+K)
    • 重启Xcode和你的iPhone 7
    • 重新构建并运行到真机,很多时候缓存问题会导致这类加载错误。
  • 确认签名和Provisioning Profile的有效性
    切换到General标签的Signing部分:

    • 确保你的Team选择正确,Provisioning Profile是针对该设备的有效配置(可以点击Download Manual Profiles刷新)
    • 框架的签名会由Embed & Sign自动处理,但如果你的应用签名有问题,也会导致框架无法加载。
  • 检查单元测试目标的框架配置
    如果你给单元测试目标添加了Realm,要确保:

    • 单元测试目标的Linked Frameworks and Libraries里有Realm.framework,但状态是Do Not Embed(因为主应用已经嵌入了框架,测试目标不需要重复嵌入,否则会冲突)
    • 测试目标的Framework Search Paths也要正确指向Realm的目录。

如果以上步骤都试过还是不行,可以尝试重新下载对应版本的Realm Swift框架(确保是支持iOS 11和Xcode 9的版本,比如Realm 3.x系列),然后重新拖入项目配置一遍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:23:01