OngaLog

最近GOが楽しくて、

Swift dyld: Library not loaded 事例集(日々更新)

Swiftで開発中に以下のエラーが発生してライブラリが読み込めないことがあるが、いまいち原因が掴まない。Xcodeの挙動を理解していない事が一番の原因なのだけれど根本的な原因を掴める記事がみつからない、ひとまず事例をweb上から集めてみようとおもう。

 dyld: Library not loaded

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

Link Binary with LibrariesのstatusをOptionalにして解決している

f:id:loosefingers:20160804031236p:plain

framework not found Realm for architecture x86_64

シュミレータを起動した場合はOKだが、TESTの実行時にライブラリがみつからない場合。 TestのTargetで、Link Binary with Librariesを設定してOKになった。

f:id:loosefingers:20160804031055p:plain

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

Embedded Binariesにフレームワークを追加してOK f:id:loosefingers:20160805024848p:plain

otool -l appを実行すると、

Load command 33
          cmd LC_RPATH
          cmdsize 40
         path @executable_path/Frameworks (offset 12)

LC_RPATHは@executable_path/Frameworksとなっている、 この時の@executable_path/Frameworksは/System/Library/Frameworksとの事、

rpathというものがそもそもなんなのかがわかっていないが、バイナリ毎に設定されたPATHのありかぽい。 otoolについてもっと調べよう。

参考にさせて頂いた記事、 qiita.com qiita.com Mac OSX で dylib などのライブラリ内のリンク情報を変更するには - Enjoi Blog jpmartha.hatenablog.jp qiita.com matsukaz.hatenablog.com mushikago.com