Unityゲーム制作初心者です。
制作していたアプリを実機で動作確認するためにiOS端末(iPod touch 7th gen)にビルドしようとしたい際に発生したビルドエラーと解決方法のメモです。
基本的に自分で見返す用ですが同じ様にエラーに遭遇した方の役に立つこともあるかなと思い対処法を書き残しておきます。
iOS実機テストの基本的な手順は以下ブログが参考になりました。
[Unity] アプリをiPhone実機上でテストする
Linker command failed with exit code 1 (use -v to see invocation)
AdMobを導入したUnityプロジェクトをビルドしようとした際に発生。以下スクショとWarning部分を一部抜粋。
Directory not found for option ‘-L/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-fenqygixlctrifdeofmweeqmzbfx/Build/Products/ReleaseForRunning-iphoneos/GoogleUtilities’
Directory not found for option ‘-L/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-fenqygixlctrifdeofmweeqmzbfx/Build/Products/ReleaseForRunning-iphoneos/PromisesObjC’
Directory not found for option ‘-L/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-fenqygixlctrifdeofmweeqmzbfx/Build/Products/ReleaseForRunning-iphoneos/nanopb’
Library not found for -lGoogleUtilities
Linker command failed with exit code 1 (use -v to see invocation)
解決方法
プロジェクト名.xcodeprojではなくプロジェクト名.xcworkspaceファイルからXcodeを開くことで解決。
(Unityでビルドした際に生成したファイル郡の中にあります)
エラー名でググるとpod関連のアプデや再インストールに関する記事が多く引っかかりますが、そもそもAdMobのようにCocoapodを使用するプロジェクトは.xcworkspaceファイルを使用してビルドする必要があるようです。
これSwift等でiOSアプリ開発されている方なら常識かもしれないですが、Unityで初めて広告つけた無料アプリ・ゲーム作る人はほぼハマる気がする。。
参考:Xcodeで”library not found for -lGoogleUtilities”エラーが出たら | AKATANA GAMES
Could not locate device support files.
Xcodeがビルド先のiOSバージョンをサポートしてない状態なのでサポートファイルを用意してあげる必要がある。ビルド先のiPhoneやiPod、iPadのOSを最新にしたばかりの後に生じやすい。
以下エラー時のスクショと文言抜粋。
Could not locate device support files.
This iPod touch(7th generation)is running iOS 13.6(17G68), which may not be supported by this version of Xcode. An updated version of Xcode may be found on the App Store or at developer.apple.com
解決方法
以下GitHubページからビルド先のiPhone等のiOSバージョンのサポートファイルをダウンロード。
GitHub – filsv/iPhoneOSDeviceSupport: Xcode iPhoneOS DeviceSupport files (6.0 – 14.0)
ちなみに自分の場合は13.6だったので以下をダウンロードしました。
ダウンロードしたzipファイルを展開、それを以下パスのディレクトリに配置する。
/アプリケーション/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
Xcodeを一度終了し再起動。ビルドエラーが解消されていればOK!
Development connot be enabled while your device is locked.
iPhone等の端末のロックが解除されているのに「端末がロックされています」というエラーが生じることがある。
Development connot be enabled while your device is locked.
Pleaese unlock your device and reattach.
(0xE80000E2)
ロックが解除されているか確認し、解除されていてもエラーが解消されない時は以下の方法を試す。
解決方法
一度Macと繋いでいるケーブルを外し、iOS側の「位置情報とプライバシー」をリセット。再度Macと繋ぎ「このコンピュータを信頼しますか?」をやり直す。その後再度Xcodeでビルド、エラーがでなければOK。
具体的な手順は以下記事参照のこと。
参考:Development cannot be enabled while your device is locked. – Qiita
Could not launch “YourAppName”
開発中のアプリやゲームを実機テストする際は悪意のあるアプリを不用意に開かないためにiOS側で信頼していない開発者のアプリは自動で起動しない。
Could not launch “YourHogeApp”
iPod touch has denied launch request.
Internal launch error:process launch failed: The operation couldn’t be completed. Unable to launch com.Hogehoge.YourHogeApp because it has an invalid code signture, inadequate entitlements or its profile has not been explicitly trustes by the user.
この状態のときはiOSでアプリアイコンをタップしてもアプリが起動しない可能性がある。その場合は以下の解決方法を試す。
解決方法
開発元を信頼する設定をする。
設定>一般>デバイス管理>デベロッパAPP(Apple Development: ほにゃら〜)から対象の開発元名をタップして「信頼」。アプリを起動できればOK。