使用第三方動態庫出現dyld: Library not loaded Reason: image not found

使用第三方動態庫出現如下錯誤:

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

Referenced from: /var/containers/Bundle/Application/C3E607DA-217A-4432-A035-F14FE1C79D45/MyTest.app/MyTestApp

Reason: image not found

第一種解決方法:

1、在Xcode中的Build Phases中的Copy Files項中,將你要引用的framework拖到“Linked

Frameworks and Libraries“中【如果已經添加了,跳過這一步】

2、把Build Phases 里Social.framework后邊的選項修改成為Optional就可以了


上面這種方法使用的是弱引用(Optional)的方式

強引用(Required)的framework是一定會被加載到內存的,但是弱引用(Optional)的framework只在需要時才會被載入內存,這對于比較大的framework來說,在最初加載的時候會省很多時間。
簡單解釋一下,有一些庫如Social.framework 和AdSupport.framework,是在iOS6之后才被引入的,還有一些更新了新特性的只能在iOS6+上可用。當你添加一個framework到你的工程里,他們被默認強引用(Required),然而,當你最終把程序配置在運行5.0的設備上時,你會發現它通不過最戶的加載,原因就在于這些庫是不被iOS5.0支持的,就需要我們把這些庫的引用改為Optional.

第一種方式可以解決編譯時的報錯,但有時候我們在使用庫里的方法時不能正確的執行。

第二種解決方法:

在Embedded Binaries點擊“+”號,把動態庫添加進來


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容