iOSシミュレーターでのテスト時のエラー:ブートストラップサーバーに登録できませんでした


370

UIAlertViewのボタンをクリックすると、シミュレーターでアプリがテストされました。そこでデバッグを停止し、コードに変更を加えて、アプリを再度ビルドしました。アプリケーションを実行すると、コンソールにこのエラーが表示されます

ブートストラップサーバーにcom.myApp.debugを登録できませんでした。エラー:不明なエラーコード。これは通常、このプロセスの別のインスタンスが既に実行されているか、デバッガーでハングしていることを意味します。

シミュレーターからアプリを削除してクリーンビルドを試みましたが、アプリを実行しようとすると、このエラーが発生します。

シミュレータでアプリを再度実行できるようにするにはどうすればよいですか?


2
デバイスでテスト中にこれが発生した場合の対処法について何か提案はありますか?デバイス、Xcodeを再起動してみました。
iPadDeveloper2011 2011年

1
また、デバイス上のアプリを削除し、すべてのアクティブなアプリを終了して(ホームをダブルクリックし、アプリのアイコンを指で押したまま、「-」記号をタッチ)、Xcodeを再起動して、ログアウトして再度ログインしました。これまでのところ何も機能しません。
iPadDeveloper2011 2011年

XCodeメニューの「キャッシュを空にする」を試してください。それも役立ちます。
lostInTransit

3
この問題に直面しているすべての人にとって、後でわかったように、これはほとんどの場合、コードのバグが原因で発生します。実行時間が長くかかるか、アプリをループさせるコードを探します。
lostInTransit 2011

4
その場合は、SimulatorBridgeを強制終了してシミュレーターを終了します。ps ax | grep SimulatorBridge
Elland

回答:


162

シミュレータを終了して再起動してみますか?「最悪になると最悪になる」場合は、いつでも再起動を試すことができます。私の経験では、これで修正できます。


44
結局システムを再起動してしまいました!それでも問題の原因がわからない!
lostInTransit 2009

6
以下のコメントにあるように、通常、ハングしたプロセスをアクティビティモニターで確認し、そこで強制終了することができます。
mxcl

13
私は再起動が嫌いです:)ハングしたプロセスを終了することは私にとってうまくいきました:ps ax | grep Simulatorは実行中のアプリを表示します。私の場合、ハングしたのはMyApp.appでした。
BadPirate '28年

12
再起動しても効果がありません
Pascal Klein

10
これはXCode 4.3でよく見られます。アプリケーションを再起動するか、シミュレータを終了しても、効果はありません。機能させるために、コンピュータを再起動する必要があります。
Øystein

242

ステータス:これは、Mac OS 10.8およびXcode 4.4と同じくらい最近見られています。

tl; dr:これは、デバイスで実行しているときとシミュレーターで実行しているときの2つのコンテキストで発生する可能性があります。デバイスで実行している場合、デバイスを切断して再接続すると問題が解決するようです。

マイク・アッシュが提案

launchctl list|grep UIKitApplication|awk '{print $3}'|xargs launchctl remove

これは常に機能するとは限りません。実際、私には効果がありませんが、場合によっては明らかに機能します。どのケースかわからない。したがって、試す価値があります。

そうでない場合、これを修正する唯一の既知の方法は、ユーザーlaunchdを再起動することです。再起動すればそれは可能ですが、それほど劇的ではない/より速い方法があります。別の管理ユーザーを作成する必要がありますが、それを行うのは一度だけです。物事が割り込んだら、自分としてログアウトし、そのユーザーとしてログインし、メインユーザーに属するlaunchdを終了します。たとえば、

sudo kill -9 `ps aux | egrep 'user_id .*[0-9] /sbin/launchd' | awk '{print $2}'`

をメインのユーザー名に置き換えますuser_id。通常のユーザーが正常な状態に戻るときに、再度ログインします。ちょっと痛いですが、完全な再起動ほどではありません。

詳細:

これは、Lion / Xcode 4.2でより頻繁に発生し始めました。(個人的に、私はその組み合わせの前にそれを見たことがない。)

バグはlaunchdにあるようで、デバッガーがkillせずにデバッグを停止したときに、アプリプロセスを子として継承します。これは通常、アプリがゾンビになり、psでプロセスステータスがZになっていることで示されます。

コアの問題は、launchdに実装されているブートストラップネームサーバーにあるようです。これは(私が理解している範囲で)アプリIDをマッハポートにマッピングします。バグがトリガーされると、アプリは停止しますが、ブートストラップサーバーのネームサーバーマップから削除されないため、ブートストラップサーバーは、アプリの別のインスタンスを同じ名前で登録することを拒否します。

wait()ゾンビに対してlaunchdを強制的に実行すると問題が解決することが期待されていましたが(コメントを参照)、そうではありません。主要な問題であるのはゾンビのステータスではありませんが(これは、一部のゾンビが無害である理由です)、ブートストラップネームサーバーであり、launchdを殺すことなくこれを解決する既知の方法はありません。

このバグは、Xcode、gdb、およびユーザーlaunchdの間の何かが原因で発生したようです。アプリをiphoneシミュレーターで実行し、gdb内で停止してからビルドを実行し、iPadシミュレーターで実行することで、ウェッジを繰り返しました。スイッチングシミュレータ(iOS 4.3 / iOS 5、iPad / iPhone)の影響を受けやすいようです。これは常に発生するわけではありませんが、シミュレータを頻繁に切り替える場合はかなり頻繁に発生します。

ログイン中にlaunchdを終了すると、セッションが台無しになります。ログアウトして再度ログインしても、ユーザーlaunchdは強制終了されません。OS Xは既存のプロセスを維持します。再起動すると問題が解決しますが、それは苦痛です。上記の手順はより高速です。

Apple、FWIWにバグを送信しました。rdar:// 10330930


2
新しいLion / XCode4.2の動作の完全な説明に感謝します。2つの別々のアプリをデバッグするときに、より頻繁に発生するようです。
samkass '23年

2
ライオンだけではありません。ここでもSnow Leopardを使用していて、XCode 4.2以降に何度もこのエラーを確認しています。(iOS SDK 5.0がリリースされるまで、XCode 3.xを使用するために使用されていました。)
Jonny、

3
情報をありがとう...最近これがめちゃくちゃ頻繁に起こっています...過去10分間に2回。絶えず再起動しなければならないときに、確かなワークフローを実現するのは難しいです。さて、オフにしてコンピューターを再起動します。
ブラッド・ゴス

1
@smparkes:実際には以前よりも頻繁に発生するようです。bundleIDを変更するだけで、すべてが再び機能しますが、デバッグしようとしているCoreDataロジックを操作するときに面倒です。再起動よりも煩わしさは少ないですが、認めます。
マイクA

2
4.3.1そしてそれはたった今起こった... soooo迷惑です。私自身、通常はiPhoneを再起動することで解決します。Macを再起動する必要はありません。私の場合は、2011年9月頃にSnow Leopardの下でXCode 4.2を使用してその動作を確認しました。
TheEye

70

Lion + Xcode 4.2でこの問題が発生し始めています。Xcode 4.3でも問題が発生しました。

私はすべての提案を試しましたが、完全な再起動以外は機能しませんでした。

ここでは、迅速な再起動が必要かどうかを判断する方法を説明します。

ゾンビプロセスをすべて一覧表示します。

ps -el | grep 'Z'

アプリがゾンビプロセスとしてリストされている場合は、マシンを再起動する必要があります。エラーメッセージは、「これは通常、このプロセスの別のインスタンスがすでに実行されているか、デバッガでハングしていることを意味します」と述べています。まあ、Xcodeはあなたが殺すことができないこのゾンビプロセスを検出しています。修正できる唯一の方法は、システムを再起動することです。:(

編集、20120823:私はゾンビプロセスについてある程度の知識があるので、この回答を更新したいと思いました。ゾンビプロセスは、親プロセスが終了する子プロセスでwait()(プロセスの状態が変化するのを待つ)を呼び出さない場合に作成されます。ゾンビプロセスで直接「kill」を実行することはできませんが、親プロセスを強制終了すると、ゾンビの子プロセスが「再取得」され、プロセステーブルから削除されます。

私はこの問題を長い間見ていなかったので、このシナリオで親プロセスが何であるかを調べるために検査していません。親プロセスを強制終了する代わりに、システムを再起動します。:)


おかげで、ゾンビとして実行している3つのプログラムのインスタンスが7つありました。
ArtSabintsev

1
上記のように、再起動で十分ですが、必須ではありません。また、問題を引き起こさないゾンビが周囲にいることもあるので、この方法でゾンビを探すことは、信頼できる方法ではありません。唯一の確実な兆候はXcodeのメッセージです。
11

rootとしてこれらのゾンビプロセスを強制終了しようとしましたか?やる前に再起動しました。
ライアンH.

1
@smparkes、はい、それはこのエラーメッセージを議論するこの質問に基づいて明白です。
jyap 2012年

1
@HZC、ええ、ルートとしてもゾンビプロセスを殺すことはできません。
jyap 2012年

20

私はこれを私に起こさせました:私のデバイスでのみエラーが発生し、シミュレーターは正常に動作していました。私はデバイスをリセットする必要があり、エラーはなくなりました。


1
ここでも同じ、デバイスを再起動し、それが消えました。シミュレータは正常に動作しました
agente_secreto

15

最近この問題が頻繁に発生しています。これを防ぐにはどうすればよいですか?ログアウトしてログインすると問題が解決しますが、頻繁にそうするのは面倒です。

編集:

原因を見つけました。ApplicationWillTerminateメソッドにバグがありました。そのため、Xcodeウィンドウの停止ボタンをクリックすると、アプリが正常に終了せず、ハングし始めました。

アプリがリストに含まれているかどうかを確認するには、アクティビティモニターを確認してください。可能であれば強制終了します。


2
これで解決しました!ps aux | grepシミュレータ
Jason Prado

それは私がリークパフォーマンスツールを起動中に、このバグを作成するのに役立ちます場合
IssamTP

14

問題の原因がゾンビプロセスにある場合:

ps -el | grep 'Z'
(以前のコメントhttps://stackoverflow.com/a/8104400/464289のように)すぐに問題を修正したい場合は、再起動したり何も殺したりせずに修正できます。プロジェクトターゲットの実行可能ファイルの名前を変更するだけです。

  1. 左側のペインでプロジェクトをクリックします
  2. 中央のペインで[ ビルド設定]を選択します
  3. パッケージング」の下で「製品名」を$(TARGET_NAME)から$(TARGET_NAME)に変更します。1

かんたん!


これは私にとっては機能せず、同じエラーが発生しました:プロビジョニングプロファイル 'mataleao2'は、現在の設定 'au.com.mataleao-1'と一致しないアプリケーション識別子 'au.com.mataleao'を指定しています
sapatos

シミュレータまたはiPhoneでテストしていますか?
JRG 2012

iphoneのみでテストしています。テストしている機能は電話でのみ機能します
sapatos

7

さて、答えはありませんが、少なくとももう1つのテストを行う必要があります。ターミナルを開き、次のコマンドを実行します: "ps-Ael | grep Z"。「(clang)」とアプリまたは会社名の2つのエントリが表示された場合は、再起動してください。

あなたが開発者であれば、短いバグを入力し、Appleに再起動の煩わしさがどれほど煩わしいかを伝え、このバグを先ほど入力した「rdar:// 10401934」に複製できることを説明してください。

デビッド


5

iOSシミュレータをリセットすると、エラーが修正されました。これにより、シミュレータにあるすべてのアプリが削除されますが、マシンを再起動しなくても問題が修正されます。

次の手順でiOSシミュレータをリセットできます。

1)メイン画面の左端にあるアップル()ロゴの横の[iOSシミュレータ]メニューに移動します。
2)「コンテンツと設定をリセット...」を選択します。
3)ポップメッセージを読み、同意する場合は[リセット]をクリックし、それ以外の場合は[リセットしない]をクリックします。


3
少しは役に立ちませんが、代わりにすべてのコンテンツ/アプリ/写真/連絡先が失われます
奇妙な

1
@strangeそれはシミュレータです。とにかく、重要な情報は含まれていません。:)
エフゲンボドゥノフ2012年

5
  1. シミュレータを閉じる
  2. xCodeでのアプリの実行を停止します。
  3. アクティビティモニターを開き、アプリNAMEで実行されているプロセスを検索します。
  4. アクティビティモニターでこのプロセスを強制終了します
  5. プロジェクトを再構築すると、すべての準備が整います

「強制終了」を使用しても、プロセスはActivity Monitorで強制終了されないように見える
Ferruccio 2012年

4

ゾンビプロセスで@jyapが言及する問題がありました。それらをクリアする唯一の方法は再起動することでした。ただし、同じプロジェクトに取り組んでいる友人が同じ問題を抱えることになるが、ゾンビプロセスを作成せずにシミュレーターを強制終了できることに気づきました。Xcodeを完全にアンインストールして再インストールしました。それでもエラーが発生しますが、ゾンビプロセスは作成されないため、再起動する必要はありません。

それをする前に、私はこの本当に醜い回避策を使用していました:アプリIDを変更して再度実行しました。シミュレーターではアプリのジャンクコピーが作成されますが、しばらくは再起動を延期できます。


4

このエラーは、シミュレータでアプリをテストするたびに頻繁に発生し、再起動を余儀なくされます。

いくつかの作業を完了したい場合の回避策は次のとおりです。

  • プロジェクトナビゲーターでプロジェクトをクリックします
  • ターゲットに移動-> 情報
  • アプリケーションのキーを追加するとバックグラウンド実行されず、に設定されYESます。

つまり、シミュレーターのホームボタンを押すか、シミュレーターを終了しても、アプリはハングしません。

配布前にこの設定を元に戻すことを忘れないでください!リリースチェックリストに入れてください:)


1
これは、元に戻すことを忘れない限り、バックグラウンドの動作をテストできないため、危険です。
tc。

@tc:はい、同意します。ただし、iOSアプリを実行するたびに再起動せざるを得ない場合(これは私が持っていたものでした)、これは依然として代替手段よりも優れている可能性があります。
Chris Burt-Brown

4

iPhoneでテストしているときにこれが発生した場合。電話を再起動するだけです。私が聞いたことから、電話またはシミュレーターは実行中のアプリのインスタンスがあるとまだ信じているので、最後に実行されたときに正しく終了していなかったので、コードのエラーまたは電話/シミュレーターが単にうめき声。


4

iPhone 4でアプリをデバッグしているときにこのエラーが発生しました。iPhoneをハードリブートすると問題が解決しました。(iPhoneの電源を切ったところハングしました...)

Macにゾンビプロセスがなく、Macを再起動しても問題は解決しませんでした。

たぶん、このバグはシミュレータと実際のデバイスの両方に現れる可能性がありますか?


4

デバイスを再起動し、動作しました!:D

素晴らしい提案をしてくれたみんなに感謝します。


3

このエラーが発生しました。シミュレーターとXcodeを再起動してみましたが、私のプロジェクトはクリーンアンドビルド後にのみ機能します。何が原因かわからない。


3

再帰的なセッターがスタックを突破し、iPadをパワーブートしなければならないような方法でアプリを終了しました。コードの修正で証明できました。


3

私は同じ問題を抱えており、次のようにしてそれを解決しました

  • デバイスからアプリを削除し、
  • デバイスをMacから切断し、
  • デバイスをオフにしてから再びオンにし、
  • Xcodeを終了して再起動し、
  • 楽器の終了、
  • 最後に、もう一度Clean and Buildします。

XcodeがiOS 5.0を使用するように構成されており、プロジェクトでiOS 4.3を使用しているため、もう1つ行いました。

  • すべてのフレームワークを削除して、再度追加します。

質問はシミュレーターです。デバイス用ではありません。
バイラル

3

別の回避策:

  • アプリに新しい識別子を付けます。com.foobar.myappという名前の場合は、com.foobar.myapp01と呼びます。

アプリ内のすべてのデータは失われます。これは、iPhoneシミュレーターに関しては、実際には新しいアプリが実行されているためです。これは再起動よりも煩わしいかもしれませんし、そうでないかもしれません-リストに追加したかっただけです。


3

原因

以前に実行していたアプリが完全に停止する前に、シミュレーターでアプリを実行する。

修正

停止ボタンが再びアクティブになるまで待ってから、再度実行してください。

(Xcode 4.2.1を使用しています。この問題は、OS X Lionにアップグレードしたときに非常に頻繁に発生しました)。


ちょうどこのエラーが再び発生しています。私はすべてを試し、最後にiPadの再起動で修正しました。
5小節'17

2

アプリを削除した後にスマートフォンを再起動し、クリーンに再構築して再度実行することで修正しました。今は正常に動作します。

変。


2

私の問題では再構築や再インストールは必要ありません。私の場合、iPhoneでアプリを実行しようとするとエラーが表示されました。シミュレータは問題なく動作しました。

解決策:電話からアプリを削除し、電話のコールドリスタートを実行してください。


2

LionでXcode 4.2.1を使用して、私にとって多くのことが起こりました。4.3.2に更新しましたが、もう発生しません。彼らがそれを修正してくれてうれしい。


2

Mike Ashさんは、再起動を必要としない解決策(神のご加護を!)を投稿しました。ただ走れ:

launchctl list|grep UIKitApplication|awk '{print $3}'|xargs launchctl remove

上記のコマンドは、すべてのlaunchdジョブを一覧表示し、名前にUIKitApplicationが含まれているジョブを検索し(これは、適切に固定されているアプリに対応するジョブになります)、名前を抽出し、launchdにそのジョブを削除するように指示します。


これを試す機会がたくさんありました(ため息)。動作する場合もあれば、iPhoneやMacを再起動する必要がある場合もあります(上記のコマンドでは、「プロセスが見つかりません」と表示されています)。
Jano

2

これは、Xcodeの停止ボタンを押す前にiPhoneでアプリを強制終了したことが原因であると思います。Xcodeで停止ボタンを押すと、ハングした場合にアプリを終了するのに余分な時間がかかることがあります。しかし、我慢してください、それは結局ほとんどの場合やめます。


1

関数またはタブで変数を割り当てることができます。関数またはタブが終了すると、割り当てを解除します。したがって、メンバー変数またはグローバル変数を宣言する必要があります。


1

[実行]ダイアログボックスの[停止]ボタンの信頼を停止するまで、常にこのエラーが発生していました。実行しようとする前に常にツールバーで停止を押したので、ゾンビプロセスにまだ遭遇していません。


0

Oh my-私は上記および他の投稿に記載されているすべてのものを試しました。Xcodeを再インストールし、マシンを再起動し、不足しているすべてのファイルを正しいフォルダーにコピーしました...最終的に私はiPhoneをバックアップし、ワイプして復元したところ、うまくいきました!

これを読んだり、その周辺で原因となった可能性があるのは、リークを検出するパフォーマンスツールを使用して実行していたiphoneホワイトを切断したことです。またはそのようなもの。

ああ、安心の大きなため息。


0

最悪の状態で iOSシミュレーターのコンテンツと設定リセットする、およびほとんどの場合、シミュレーターと共にXCodeを終了すると、常にXCode4.6で動作します(頻繁にハングアップします)


0

私の場合、私はこの種の問題に一度直面しました

  1. シミュレーターからアプリを削除します。
  2. 派生データフォルダーを削除します。
  3. 製品メニューを選択して、プロジェクトでクリーンアクションを実行します-クリーン
  4. シミュレータをリセットします。
  5. Xcodeを終了します。
  6. 正常に機能している場合は今すぐプロジェクトを実行してみてください。それ以外の場合はステップ7に進みます
  7. 1から5までのすべての手順を繰り返し、マシンを再起動します。

ほとんどの場合、ステップ6の極端なケースで実行しましたが、マシンを再起動する必要がありました。


0

シャットダウンしていた別のデバイスのジョブの古いインスタンスが新しいインスタンスと衝突する可能性があったため、このエラーは以前のバージョンのiOSシミュレータで発生していました。

iOS 6.0以降ではこのような問題は発生しないはずです。iOS6.0ではブートストラップサブセットの使用が導入され、iOS 7.0ではホストのブートストラップサーバーから完全に分離された専用ブートストラップサーバー(launchd_sim)の使用が導入されたためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.