Unity - iPhone + VRで躓いた時に読み返す備忘録
概要
UnityプロジェクトをiOS向けにビルドして、実機デバックをする時に躓いた事をメモしておきます。
あくまで備忘録なので、まとめるつもりはありません。
Automatically manage signingができない
Unityでビルドをして作られたXcodeプロジェクトは、Automatically manage signingにチェックが入っていません。
これはとても不便なので、チェックを入れましたが、上手くいませんでした。
解決方法としては、
「TARGETS」→「Unity-iPhone」→「Build Settings」→「Code Signing Identity」を全て「iOS Developer」にするでした。
毎回変えないといけないのが面倒くさいですね。
ちなみにそれでも怒られる方は、「TARGETS」→「Unity-iPhone」→「Signing」のTeamをいろいろと変えてみましょう。
あとはUnity側のTeam IDも設定したほうが良いっぽいです。ここは検証できてません。
Linker command failedがGoogleVRによって出る
どうもGoogleVRをUnityに追加すると、Linker command failedが出てしまいました。
最初に出たのはこれ
Undefined symbols for architecture arm64:
"_gvr_set_default_viewer_profile", referenced from:
_GvrCardboardHelpers_gvr_set_default_viewer_profile_m07028866FB149E1AC5CECE15964D0B9EE8A6CA97 in Bulk_Assembly-CSharp_0.o
(maybe you meant: _GvrCardboardHelpers_gvr_set_default_viewer_profile_m07028866FB149E1AC5CECE15964D0B9EE8A6CA97)
"_gvr_reset_tracking", referenced from:
_GvrCardboardHelpers_gvr_reset_tracking_m787C501547F2AF315F6CB1F8DDA59F7FCD9032AF in Bulk_Assembly-CSharp_0.o
(maybe you meant: _GvrCardboardHelpers_gvr_reset_tracking_m787C501547F2AF315F6CB1F8DDA59F7FCD9032AF)
"_gvr_get_time_point_now", referenced from:
_AndroidNativeKeyboardProvider_gvr_get_time_point_now_m06805997F8027305F0BD844EDD089F6EAC7536EB in Bulk_Assembly-CSharp_0.o
(maybe you meant: _AndroidNativeKeyboardProvider_gvr_get_time_point_now_m06805997F8027305F0BD844EDD089F6EAC7536EB)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
それでググっていたら「なんか全部消して必要なのだけ足したら、ビルドできたで」
っていう英語の回答を見つけました。
エラー文を見ると「Android」っていうどう見てもAndroidデバイス用のファイルが原因っぽいので、「Android」と名前のつくファイルを全て「Unity」→「Asset」内から削除しました。
そして次に出たのがこれ。
Undefined symbols for architecture arm64:
"_gvr_set_default_viewer_profile", referenced from:
_GvrCardboardHelpers_gvr_set_default_viewer_profile_m07028866FB149E1AC5CECE15964D0B9EE8A6CA97 in Bulk_Assembly-CSharp_0.o
(maybe you meant: _GvrCardboardHelpers_gvr_set_default_viewer_profile_m07028866FB149E1AC5CECE15964D0B9EE8A6CA97)
"_gvr_reset_tracking", referenced from:
_GvrCardboardHelpers_gvr_reset_tracking_m787C501547F2AF315F6CB1F8DDA59F7FCD9032AF in Bulk_Assembly-CSharp_0.o
(maybe you meant: _GvrCardboardHelpers_gvr_reset_tracking_m787C501547F2AF315F6CB1F8DDA59F7FCD9032AF)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ということで今度は、「GvrCardboard」と名前のつくファイルを削除しました。(私のときは1つでした)
そして、それでもエラーが出てしまい、どうやら「Unity」→「GoogleVR」→「Demo」内にGvrCardboardを呼び出しているソースが入っていそうなので、「Demo」フォルダを全削除しました。
work-space読んでないじゃん
ここまできて、
ld: warning: directory not found for option '-L/Users/mikito_ogino/Library/Developer/Xcode/DerivedData/Unity-iPhone-aabfelpnlqgprscecknnsxbowmyc/Build/Products/Debug-iphoneos/GTMSessionFetcher'
ld: warning: directory not found for option '-L/Users/mikito_ogino/Library/Developer/Xcode/DerivedData/Unity-iPhone-aabfelpnlqgprscecknnsxbowmyc/Build/Products/Debug-iphoneos/GoogleToolboxForMac'
ld: library not found for -lGTMSessionFetcher
clang: error: linker command failed with exit code 1 (use -v to see invocation)
というエラーが出たので調べたところ、そもそも.xcworkspaceと.xcodeprojが生成されていた事に気が付きました。
workspace最初から読み込んでおけば、上のエラーも出なかったかもしれませんね。
何はともあれ、ここまでで、ようやくUnity-iPhone-VRという環境が完成しました。
Automatically manage signingにチェックが入らない
UnityでビルドしたXcodeプロジェクトを開いても、Automatically manage signingにチェックが入らないという現象が起きました。
Unity側のPlayer Settingsでは「Automatically Sign」にチェックが入っており、「Signing Team ID」も設定されていました。
おかしいなと思い、「Automatically Sign」のチェックを外し、もう一回チェックを入れるという作業をしたら、Xcode上でもAutomatically manage signingにチェックが入るようになりました。
Author And Source
この問題について(Unity - iPhone + VRで躓いた時に読み返す備忘録), 我々は、より多くの情報をここで見つけました https://qiita.com/Ginom/items/c138e2a5d15d10e3241a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .