ios dyld: Library not loaded: @rpath/xxx.framework/xxx 之根本原因

本文解决了iOS应用在运行时无法找到特定框架的问题。通过调整Xcode设置,在Build Phases中添加并正确配置Embed Frameworks选项,成功将所需的xxx.framework打包进App内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

碰到问题

dyld: Library not loaded: @rpath/xxx.framework/xxx

  Referenced from: /var/containers/Bundle/Application/0F41980D-5091-449D-AE29-5D018E3EB554/DemoOC.app/DemoOC

  Reason: image not found

  enable Always Embed Swift Standard Libraries option under Build Options,之后依然出现

 

尝试网上的各种办法都无效,得从根本上解决问题,查看build settings -> linking ->runpath search path为

@executable_path/Frameworks

再看Products生成的app ,显示包内容 Frameworks文件夹下确实没有xxx.framework.

而且查看xcode升级之前的工程,app包的Frameworks中有xxx.framework.

难怪运行时找不到库,那么根本办法是如何让xxx.framework编译到这个文件夹下。

 

实验1:新建一个swift 工程引用xxx.framework。依然碰到同样的问题,包内容Frameworks中没有xxx.framework

发现xcode升级前的工程Build Phases有Embed Frameworks这一项,而升级后新建的工程都没有这个了。贼坑。。。。

Linked Binary With Libraries 与  Embedded Framework的区别:前者不会拷贝到 App 里的,Embedded Framework会拷贝到 App 里。

General 下找到了Embed Frameworks ,添加xxx.framewok之后,OK了!!

而且也不需要enable Always Embed Swift Standard Libraries

转载于:https://www.cnblogs.com/mlj318/p/6690294.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值