使用第三方動態庫出現如下錯誤:
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點擊“+”號,把動態庫添加進來