はじめに
普段からiOSアプリは開発するんですが、コーディングとかはUnityでやってしまうので、Xcodeに触れるのって、ビルドするときだけだったりします。
なので、いまいちXcodeの使い方がよくわからず、ビルドする度にエラーが発生して、慌てたりしています。ビルド時のエラーにも色々な種類があったので、私が遭遇したものをまとめようと思います。
もしかしたら、古い情報も混ざっているかもしれませんが、ご了承ください。
本記事のターゲット
Macにまだ慣れてないけど、iOSアプリを開発することになった人を想定しています。
それと、個人開発での実機テスト時のビルドを想定しています。AdHoc等は想定していませんので、ご了承ください。
エラー紹介
ケース:codesignにアクセス権がない
日本語版エラーダイアログ
codesignは、キーチェーンに含まれるキー"access"へアクセスしようとしています。
許可するにはキーチェーン"ログイン"のパスワードを入力してください。
英語版エラーダイアログ
codesign wants to access key "access" in your keychain.
To allow this, enter the "login" keychain password.
とりあえず、ビルドを通したいのであれば、macのログインパスワードを入力して、許可を押せばよいです。
補足
**キーチェーン(Keychain)**というのは、macOS標準のパスワード管理システムです。Safariで何らかのサイトにログインすると、「このパスワードを保存しますか?」というダイアログ(こんなの)が出ますが、あれでパスワードを保存すると、キーチェーンに登録されます。
codesignはiOSアプリへ署名する仕組みです。codesignはビルドに必要なので、アクセスを許可してあげてください。
ケース:開発元が信頼されていない
Could not launch "(アプリ名)"
Verify the Developer App certificate for your account is trusted on your device. Open Settings on (iOS端末名) and navigate to General -> Device Management, then select your Developer App certificate to trust it.
ビルドはできたのに実機へのインストール時にこんなエラーが出ることがあります。これはXcode側ではなく、iOS端末側の設定変更でインストールができるようになります。
まず、iOS端末を起動し、設定→一般→プロファイルとデバイス管理をクリックします。
(iOSのバージョンによっては、プロファイルとデバイス管理ではなく、プロファイルとかデバイス管理となっているかもしれません。)
デベロッパAPPという欄に、Xcodeに登録した開発用のApple IDが表示されているはずなので、それをクリックし、(アプリ名)を信頼→信頼をクリックします。
これでインストールができるようになります。
補足
そもそもなんでこんなエラーが出るのか?ですが、Xcodeで設定したアプリの署名情報が、iOS端末側にとって「信頼されていない開発元」だったからです。「信頼する」設定に変更することによってエラーが出なくなるというお話でした。
ケース:Teamが設定されていない
Signing for "Unity-iPhone" requires a development team. Select a development team in the project editor.
Code signing is required for product type 'Application' in SDK 'iOS 11.4'
こんなエラーメッセージが表示された場合、XcodeでのTeam設定がうまくできていません。
こんな風にTeamがNoneになっていたら、チームを選択し直してください。Unityから上書きでビルドすると、このようにTeamがNoneになってしまうので注意してください。
補足
そもそも選択肢にチームが見当たらない場合、チームの登録が必要です。手順はこちらが詳しかったので紹介させていただきます。
ケース:プライバシー情報がロックされてしまった
Development cannot be enabled while your device is locked.
Please unlock your device and reattach.
(0xE80000E2).
iOS端末へのインストール時にこんなエラーダイアログが表示された場合、iOS端末のプライバシー情報がロックされてしまった可能性があります。
iOS端末で設定→一般→リセット→位置情報とプライバシーをリセットを行うことで、設定をリセットできます。
リセットができたら、iOS端末を再起動をしてください。これでインストールができるようになります。
補足
位置情報とプライバシーをリセットで何が消されるのか、一応補足します。
iOSアプリは、カメラロールやGPS情報に勝手にアクセスすることはできず、ユーザーに許可をもらう必要があります。位置情報とプライバシーをリセットはこの許可情報をすべて消します。位置情報やプライバシー情報そのものを消すわけではないので、リセットしたからといって深刻な事態になることはありません。
許可情報が消えるので、次にアプリを起動したときに、許可しなおす必要はあります。
ケース:証明書が取り消されている
Unable to install "(アプリ名)"
The certificate used to sign "(アプリ名)" has either expired or has been revoked. An updated certificate is required to sign and install the application.
こんなエラーダイアログが表示された場合、キーチェーンに証明書の残骸が残っている可能性があります。
アプリケーション→ユーティリティ→キーチェーンアクセスを起動し、左下の分類→証明書を開いてください。(macのバージョンによっては証明書ではなく自分の証明書かもしれません。)
証明書のリストが表示されるので、1つずつクリックして、この証明書は取り消されましたと書いてある証明書があれば削除してください。
これでビルドが通るようになります。
ケース:Xcodeがデバイスを正しく認識していない
(デバイス名) is busy: Preparing debugger support for (デバイス名)
Xcode will continue when (デバイス名) is finished.
こんなエラーダイアログが表示された場合、Xcodeがデバイスを正しく認識していない可能性があります。
XcodeのWindow→Devices and Simulatorsを開いてください。
左サイドバーのConnectedの配下に接続中のデバイスのリストが表示されるので、デバイス名を右クリックして、Unpair Deviceをクリックしてください。デバイスのリストから消えます。
iPhoneとMacのケーブル接続も一旦外してください。
ケーブルを繋ぎ直すと、再び、Xocdeがデバイスを正しく認識するようになります。
(ケーブルを外してから繋ぎ直すまで、数分時間を置いた方が良い場合もあるそうです。)
おわりに
自分の備忘録として、エラーの事例とその対応を載せてみました。随時追加していくつもりです。
それにしても、Xcodeは難しいですね!