Edited at

Unity Xcode Error "library not found for -" の解決方法


はじめに

今回Vuforiaを使ってARアプリを実機にビルドしようとした際に次のエラーに出会った.

↑以上の文は省略する

ld: library not found for -liPhone-lib
clang: error: linker command failed with exit code 1 (use -v to see invocation)

これの解決方法をこの記事にまとめようと思う.


他の記事を参照してみると, Unityの"Build"ではなく"Build and Run"を実行してXcodeでビルドするとうまく行くという記事もあった.

実際に, 一度はそれでうまく実機にビルドできたが, 次の日にもう一度試すとうまく行かなかった.(どういうことなんですかね??w)

詰まってる人は一度試してみるといいかも??(次回うまく行くとは限らぬが...)


ビルド環境について

Unity ver  : 2017.2.1f

Xcode ver : 10.2.1 (10E1001)
Vuforia ver: 6.5.25


解決方法


Search Paths

今回の事例では, 結局このSearch Pathsという所に原因があるみたいでした.

このSearch Pathがどこからみることができるかというと.

TargetsBuild Settingsからみることができます.

SearchPaths.png


原因(Library Search Paths)

さらにこのSearch Pathsの中で具体的な原因はLibrary Search Pathsにありました.

まぁ, エラー文がlibrary not foundなんで想像がつきますね.

今回の事例だと, Library Search Pathsの中身はこんなことになってました.

LibrarySearchPaths.png

この中身の見方はLibrary Search PathsのPathが書いている所をダブルクリックしたらみることができます.

中身がこれになってる人はわかると思うけど, LibraryまでのPathが続けて2つ書かれてるんだよね...



Library Search Paths   "/Users/username/...(Path省略)/(プロジェクトファイルのLibraryの手前まで)""/Users/username/...(Path省略)/Libraries"


こんなことになってるので, うまくLibraryを見つけることができないのだと考えられる.


どう解決するか

上にあげたLibrary Search Pathsの中身を書き換えます.

書き換えるというか, 消すだけなのだけれど...つまりこうする!

LSP1.png

↑こいつを...

LSP2.png

↑こうする!!

すると, 先ほどのにあげたPathがこうなる!


例(修正版)

Library Search Paths   "/Users/username/...(Path省略)/Libraries"


これでLibraryをしっかりと見つけることができる.


補足

今回, このエラーを直すにあたって先達に質問したのだが

先達曰く,

"Xcodeのエラーはその都度原因が違うことが多いから, しっかりとErrorの内容を全部(まぁ多分必要な部分のことかな?)みて, Pathが載ってたら細くチェックする必要がある."

と教えてもらった.

次からは膨大なことが書いてあるエラーが出ても重要そうな所を見つけて, よく読んでみます.


参考文献



  1. library not found for-liPhone-libについて (最終閲覧日: 2019/8/7)


  2. iOSのビルド設定の「Symlink Unity libraries」の意味 (最終閲覧日: 2019/8/7)


  3. library not found for -liPhone-lib【Unity】【トラブルシューティング】 (最終閲覧日: 2019/8/7)