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


碰到問題

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM