#はじめに
今回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がどこからみることができるかというと.
TargetsのBuild Settingsからみることができます.
##原因(Library Search Paths)
さらにこのSearch Pathsの中で具体的な原因はLibrary Search Pathsにありました.
まぁ, エラー文がlibrary not foundなんで想像がつきますね.
今回の事例だと, Library Search Pathsの中身はこんなことになってました.
この中身の見方はLibrary Search PathsのPathが書いている所をダブルクリックしたらみることができます.
中身がこれになってる人はわかると思うけど, LibraryまでのPathが続けて2つ書かれてるんだよね...
Library Search Paths "/Users/username/...(Path省略)/(プロジェクトファイルのLibraryの手前まで)""/Users/username/...(Path省略)/Libraries"
こんなことになってるので, うまくLibraryを見つけることができないのだと考えられる.
##どう解決するか
上にあげたLibrary Search Pathsの中身を書き換えます.
書き換えるというか, 消すだけなのだけれど...つまりこうする!
↑こいつを...
↑こうする!!
すると, 先ほどの例にあげたPathがこうなる!
Library Search Paths "/Users/username/...(Path省略)/Libraries"
これでLibraryをしっかりと見つけることができる.
#補足
今回, このエラーを直すにあたって先達に質問したのだが
先達曰く,
"Xcodeのエラーはその都度原因が違うことが多いから, しっかりとErrorの内容を全部(まぁ多分必要な部分のことかな?)みて, Pathが載ってたら細くチェックする必要がある."
と教えてもらった.
次からは膨大なことが書いてあるエラーが出ても重要そうな所を見つけて, よく読んでみます.
#参考文献
- library not found for-liPhone-libについて (最終閲覧日: 2019/8/7)
- iOSのビルド設定の「Symlink Unity libraries」の意味 (最終閲覧日: 2019/8/7)
- library not found for -liPhone-lib【Unity】【トラブルシューティング】 (最終閲覧日: 2019/8/7)