Xcode・SwiftでのiPhone実機テストエラー、ビルドエラーの一覧と解決方法

[Xcode]iPhoneの実機テストエラー・ビルドエラーの一覧と対処方法

こんにちは、こばやしよしのり @yoshiii514 です。

Xcode・SwiftからiPhone本体へアプリを転送(実機転送)した時や、ビルドした時にエラーメッセージが表示されることがあります。
エラーメッセージの内容応じて、解決方法を記載いたしますので、参考にしてください。

また、Xcode、Swift、アプリ開発についてのおすすめ本と学習方法については次のページで書いています。

Xcode・Swift 実機テストエラー・ビルドエラーの一覧と解決方法

an error was encountered while attempting to communicate with this device. (the service is invalid.)

エラーメッセージ:

An error was encountered while attempting to communicate with this device.(The service is invalid.)
Please try rebooting and reconnecting the device.

Xcode iPhoneへの実機テストエラー・ビルドエラーの一覧とその対応

日本語訳:

このデバイスと通信しようとしたときにエラーが発生しました(サービスが無効です)。
デバイスを再起動して再接続してください。

解決方法:

iPhoneをケーブルから外したのちに、iPhoneを再起動してください。
 参考:iPhone、iPad、iPod touch を再起動する – Apple サポート

iPhoneを再起動後に、再度、ケーブルを接続して、実機転送を行ってください。

Failed to create provisioning profile.

エラーメッセージ:

Failed to create provisioning profile.
The app ID “Swift-Beginners.MyJanken” cannot be registered to your development team.
Change your bundle identifier to a unique string to try again.

日本語訳:

プロビジョニングプロファイルの作成に失敗しました
AppID 「Swift-Beginners.MyJanken」 は、開発チームに登録することはできません。
Bundle Identifierを一意の文字列に変更して、もう一度試してください。

解決方法:

1. iPhone 本体が Mac と接続されている必要があります。
そして、次の図のように、 Xcode の [Device] の欄で ご自身の iPhone が選択されている必要があります。

Failed to create provisioning profile.

2.Bundle Identifier は世界中で重複したIDを使うことができません。
そのために、メールアドレスやドメイン等を活用して重複を回避します。
Bundle Identifier を重複しない ID に変更したのちに、再度、ご確認ください。
Bundle Identifier の解説は、本書に掲載されています。

Development cannot be enabled while your device is locked.

エラーメッセージ:

Development cannot be enabled while your device is locked.
Please unlock your device and reattach.

Development cannot be enabled while your device is locked. Please unlock your device and reattach.

日本語訳:

デバイスがロックされている間は、開発を有効にすることはできません。
あなたのデバイスをロック解除し、再接続してください。

解決方法:

iPhoneがロックされているときは、アプリの転送が行えません。
iPhoneをケーブルから外したのちに、iPhoneのロックを解除して再接続してください。
iPhoneがロックされていないことを確認してから、再度、XcodeよりBuildボタン(▶)を押してください。

Your maximum App ID limit has been reached.You may create up to 10 App ID every 7 Days.

エラーメッセージ:

Your maximum App ID limit has been reached.
You may create up to 10 App ID every 7 Days.

日本語訳:

作成できるAppID数の最大上限に達しました。
AppIDは、7日間で最大10個までAppIDを作成することができます。

解決方法:

AppIDは、Bundle Identifierのことです。
Bundle Identifierの解説は、本書に掲載されています。
Bundle Identifierは世界中で重複したIDを使うことができません。
そのために、メールアドレスやドメイン等を活用して重複を回避します。ですが、このIDを何度も変更していると7日間で10個のIDしか作れない制限がかかります。
7日間なので、少し期間をあけてもらえると新しくIDが作成できるようになり、実機転送が行えます。
この制限は、Apple Developer Programで無料アカウントの場合に発生しています。

Failed to register bundle identifier.

エラーメッセージ:

Failed to register bundle identifier.
The app identifier “Swift-Beginners.MyFirst” cannot be registered to your development team. Change your bundle identifier to a unique string to try again.

日本語訳:

「bundle identifier」の登録に失敗しました。
「app identifier」の「Swift-Beginners.MyFirst」をあなたのチームに登録することはできません。 「bundle identifier」を一意の文字列に変更してもう一度試してください。

解決方法:

「bundle identifier」が重複することがエラーの原因ですので、重複しないようにIDを設定することで、エラーは解消されます。
詳細は、 Xcode10でUIパーツとコードの関連付け(紐付け)と削除する方法 を参照してください。

Could not launch “(アプリ名)”

エラーメッセージ:

Could not launch “(アプリ名)”
Verify the Developer App certificate for your account is trusted on your device.Open Settings on (ユーザー名) and navigate to General -> Device Management, then select your Developer App certificate to trust it.

Could not launch “(アプリ名)”

日本語訳:

「(アプリ名)」を起動できませんでした
あなたのアカウントのデベロッパーアプリケーション証明書があなたのデバイス上で信頼できるものであることを確認してください。(ユーザー名)の[設定]を開き、[一般] -> [デバイス管理]に移動し、デベロッパーアプリケーション証明書を選択して信頼してください。

解決方法:

Xcodeで登録したDeveloperアカウントからiPhone本体へ転送することを、iPhone本体で信頼させる必要があります。
次の手順で、信頼してください。
iPhone で[設定]→[一般]→[プロファイルとデバイス管理]の順にメニューをたどります。[プロファイルとデバイス管理]から次の手順ですすめます。

Xcodeで登録したDeveloperアカウントからiPhone本体へ転送することを、iPhone本体で信頼させる必要があります。 次の手順で、信頼してください。

解説は、本書に掲載されています。

Could not locate device support files.

エラーメッセージ:

Could not locate device support files.
This iPhone XS is running iOS XX.X,which may not be supported by this version of Xcode.

Could not locate device support files.

日本語訳:

デバイスサポートファイルを見つけることができませんでした。
このiPhone XSはiOS XX.Xを実行していますが、このバージョンのXcodeではサポートされていない可能性があります。

解決方法:

iPhoneのiOSのバージョンに対応したXcodeのバージョンではない可能性があります。
直近で、iOSのみをバージョンアップした場合は、必ずXcodeのバージョンアップも実施してください。
App store でXcodeのアップデートを確認してください。
また、企業内ネットワークなどの特殊な環境では、App storeでのアップデートが許可されていないときがあります。
ご自宅での一般的なネットワーク環境でApp storeのアップデートをご確認ください。

A server with the specified hostname could not be found.

エラーメッセージ:

A server with the specified hostname could not be found.
No profiles for ‘xxxxxxx.MyFirst’ were found.

日本語訳:

指定されたホスト名を持つサーバーが見つかりませんでした。
「xxxxxxx.MyFirst」のプロファイルは見つかりませんでした。

解決方法:

ご使用しているMacがインターネットに接続できている環境であるかご確認ください。
Xcodeでは実機転送を行うために、ネット環境が必要になります。
また、VPNや企業内ネットワークなどの特殊なネット環境では、接続が許可されておらず、失敗してエラーになることがあります。
一般的なご自宅のネット環境でご確認ください。


The run destination XXXXX iPhone is not valid for Running the scheme ‘MyJanken’.

エラーメッセージ:

The run destination XXXXX iPhone is not valid for Running the scheme ‘MyJanken’.
XXXXX iPhone’s iOS 12.4.1 doesn’t match MyJanken.app’s iOS 13.0 deployment target. Upgrade XXXXX iPhone’s iOS version or lower MyJanken.app’s deployment target.

The run destination XXXXX iPhone is not valid for Running the scheme ‘MyJanken’.

日本語訳:

実行先XXXXX iPhoneは、スキーム「MyJanken」の実行には無効です。
XXXXX iPhoneのiOS 12.4.1は、MyJanken.appのiOS 13.0展開ターゲットと一致しません。 XXXXX iPhoneのiOSバージョンをアップグレードするか、MyJanken.appの展開ターゲットを下げます。

解決方法:

iPhone の OS バージョンと Xcode でiPhoneアプリ用として作っている OS バージョンの指定が異なります。
最新バージョンの Xcode であれば、常に最新のiOSバージョンのアプリ作成がデフォルトになっています。
iPhone の OS をアップデートしてください。


Unexpectedly found nil while implicitly unwrapping an Optional value

エラーメッセージ:

Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

Unexpectedly found nil while implicitly unwrapping an Optional value エラーへの対処

日本語訳:

スレッド 1: フェータル・エラー。暗黙的にオプション値をアンラップ中に予期せず nil が見つかりました。

解決方法:

使用している変数は、@IBOutlet で接続されたものです。画面のパーツと @IBOutlet の接続が正常にできていないことが原因です。
@IBOutlet の接続を確認してください。


Cannot use instance member ‘xxxxxx’ within property initializer

エラーメッセージ:

Cannot use instance member ‘xxxxxx’ within property initializer; property initializers run before ‘self’ is available

Cannot use instance member 'xxxxxx' within property initializer; property initializers run before 'self' is available

日本語訳:

プロパティイニシャライザ内でインスタンスメンバ ‘xxxxx’ を使用できない。

解決方法:

記述する場所が間違っています。
classで、変数を宣言・初期化する場所で変数を利用しているためエラーになります。
変数を利用したいアクションが発生するメソッド内にコードを移動します。


Could not launch Simulator.app.

エラーメッセージ:

Could not launch Simulator.app.
Domain: DTiPhoneSimulatorErrorDomain
Code: 4
The operation couldn’t be completed. (OSStatus error -1712.)
Domain: NSOSStatusErrorDomain
Code: -1712

日本語訳:

Simulator.appを起動できませんでした。
ドメインで起動できませんでした。DTiPhoneSimulatorErrorDomain
コードは?4
操作を完了できませんでした。(OSSStatus エラー -1712.)
ドメインです。NSOSStatusErrorDomain
コードは?-1712

解決方法:

1.Macを再起動後にシミュレータの実行
2.プロジェクトをクリーンアップして再ビルドします。
 Shift + Command + k でクリーンできます。
 メニューなら[Product]> [Clean Build folder]でできます。
3.プロジェクトを削除して最初から作り直す


terminating with uncaught exception of type NSException

エラーメッセージ:

Terminating app due to uncaught exception ‘NSUnknownKeyException’, reason: ‘[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key effectimage.’
terminating with uncaught exception of type NSException

Terminating app due to uncaught exception.terminating with uncaught exception of type NSException

日本語訳:

キャッチされなかった例外のためにアプリを終了します ‘NSUnknownKeyException’,
理由:'[ setValue:forUndefinedKey:]:このクラスは、キーエフェクトイメージのキー値コーディングに準拠していません。
タイプNSExceptionのキャッチされない例外で終了する

解決方法:

1.画面パーツとコードの関連付けを確認します。
2.関連付けで警告マークがある場合は、関連付けを削除して、再設定してください。

書籍「たった2日でマスターするiPhoneアプリ開発集中講座 Xcode 11 Swift 5対応」のP105を参考にしてください。

アプリ開発が学べる勉強会を開催中!
プログラミング初心者向け、アプリ開発ノウハウ、エンジニアキャリアについてのイベントを開催!アプリ開発を学ぶための勉強会を定期開催しています。
学習する習慣を身につけたい、他の参加者と作業したい、アプリ開発の基本をマスターしたい、という方のために無料で学べる勉強会です。
グループにメンバー登録して頂くと、イベント開催時にメールで通知されます。
 グループのメンバーとして参加する
徹底した基礎学習からのマスターするiPhoneアプリ開発集中オンライン講座開講!
徹底した基礎学習からのマスターするiPhoneアプリ開発集中オンライン講座開講!
本書「iPhoneアプリ開発集中講座」を執筆している現役エンジニア講師陣が直接に指導!
基礎、課題実習で実践力を鍛えて、オリジナルアプリ公開までチャレンジ!
充実した転職支援もあるので、エンジニアへ転職したい人にもおすすめです!
まずは、現役エンジニアに相談できる無料相談をご利用ください。