2015-10-16 24 views
7

更新:私はこの年に自分のDTSの1つを使用しました。現在Appleサポートエンジニアと協力しています。彼の提案では、私はこれについてのバグレポートも作成しました。私は時間がうまくいけば、このスレッドを更新し、最終的な解決策をもたらすだろう。アプリiOS 9 + Xcode 7のSegueで全デバイスをクラッシュする

どういうわけか、文字通りシミュレータや物理デバイスを再起動するアプリを作成する方法を見つけました。私のためにハレイ。この問題は、xcode 7にアップグレードしてiOS 9に対してテストを開始したときに開始されました。すべてのデバイス/シミュレータ< iOS 9では、この問題はその醜いヘッドを後退させません。

私はそれがXcodeのに添付実行すると、私が見る唯一のログメッセージは、私はこのコードがAで

[self addChildViewController:segue.destinationViewController]; 

を呼び出しているコードの部分にそれを絞られている

XPC connection interrupted 
Terminating since there is no system app. 

ですこのスタイルで作成された "MultichildContainerViewController"の一部view controller

この時点では、この問題を解決するための場所と場所はわかりません。私がchildviewcontrollerの追加をコメントアウトすると、すべて正常ですし、アプリは正常に実行されます。コメントしないと、シミュレータ全体が再起動されます。

追加のデバッグ情報や潜在的な修正プログラムの入手先については、どのようなアイデアがありますか?私はちょうど助けを求めるために使用するより多くの情報を見つけるためにこの点を見るべき場所を知りません。どんな助けでも感謝しています。

編集: これが役立つかどうかわかりませんが、実際のiOSシミュレータのsystem.logでこれを調べることができました。バックボードだけで、自分のコードベースへの参照がないようですか?

Oct 16 17:56:29 MyComputer backboardd[43977]: -[NSNull isEqualToString:]: unrecognized selector sent to instance 0x10de1baf0 
Oct 16 17:56:29 MyComputer backboardd[43977]: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull isEqualToString:]: unrecognized selector sent to instance 0x10d 
e1baf0' 
*** First throw call stack: 
(
0 CoreFoundation      0x000000010dbf6f65 __exceptionPreprocess + 165 
1 libobjc.A.dylib      0x000000010df82deb objc_exception_throw + 48 
2 CoreFoundation      0x000000010dbff58d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 
3 CoreFoundation      0x000000010db4cf7a ___forwarding___ + 970 
4 CoreFoundation      0x000000010db4cb28 _CF_forwarding_prep_0 + 120 
5 BackBoardServices     0x000000010d020b28 -[BKSHIDEventKeyCommandDescriptor isEqual:] + 155 
6 CoreFoundation      0x000000010db1630b -[__NSSetM addObject:] + 411 
7 CoreFoundation      0x000000010db466a0 -[NSMutableSet unionSet:] + 736 
8 BackBoardServices     0x000000010d0223a3 -[BKSHIDEventRouter addHIDEventDescriptors:] + 38 
9 backboardd       0x000000010c73a881 backboardd + 186497 
10 libdispatch.dylib     0x000000010e862df5 _dispatch_call_block_and_release + 12 
11 libdispatch.dylib     0x000000010e87e4a7 _dispatch_client_callout + 8 
12 libdispatch.dylib     0x000000010e868184 _dispatch_queue_drain + 1048 
13 libdispatch.dylib     0x000000010e867b3c _dispatch_queue_invoke + 595 
14 libdispatch.dylib     0x000000010e869454 _dispatch_root_queue_drain + 565 
15 libdispatch.dylib     0x000000010e869218 _dispatch_worker_thread3 + 98 
16 libsystem_pthread.dylib    0x000000010ebaa4f2 _pthread_wqthread + 1129 
17 libsystem_pthread.dylib    0x000000010eba8375 start_wqthread + 13 
) 

編集:私はまた、これは単にアプリがクラッシュする原因とされていない、これは、全体のシミュレータが再起動する原因となっていることを強調したいです。私はまた、物理デバイス上でこの再起動を引き起こすことができます。これがNSNullの isEqualToString を呼び出す単純なケースだった場合は、私のアプリをクラッシュさせるべきではないでしょうか?シミュレータ全体ではありませんか?

+0

同じエラーが発生しています。他の人がapple https://forums.developer.apple.com/thread/22087のサポートスレッドを投稿しました。私がポップオーバーや類似のアニメーションを表示しようとするたびに私に起こります。まだ状況を隔離しようとしている –

+0

@HaydenHolliganを残念して申し訳ありません。私はこれを解決するために取っているステップを示すために質問を更新しました。うまくいけば、私の問題が解決したときに、私たちはあなたと他の人を解決することができます。あなたがその重要だと思うなら、この質問をbtwに投票してください。可視性を高めるのに役立ちます。 – Ceryni

答えて

5

私はそれを理解したと思います!私は自分の問題があなたと同じであると確信しています。同じクラッシュログと状況。

私は問題を切り離そうとしました。そのため、私のストーリーボードを空のプロジェクトにコピーし、すべての接続を削除し、すべてのクラスをデフォルト(カスタムクラスなし)にしました。

いくつか再生した後、別の分割ビューコントローラーを同じマスタークラスと詳細クラスに再リンクしようとしました。できます!だから私はすべての設定を比較し、文字通り何も違っていた。くそー。

今何ですか?ソースコードを開きます。左ペインでストーリーボードを右クリックし、「外部エディタで開く」を選択します。これは、ストーリーボードのソースコードを開くはずです。私は2つの分割ビューコントローラのソースコードを比較し、違いを見つけました。私は

<!--Split View Controller--> 
    <scene sceneID="X6N-vM-fHn"> 
     <objects> 
      <splitViewController id="xSd-V6-k6W" customClass="SplitViewController" sceneMemberID="viewController"> 
       <navigationItem key="navigationItem" id="yvV-sB-yKa"/> 
       <keyCommands> 
        <keyCommand/> 
       </keyCommands> 
       <connections> 
        <segue destination="PW6-z0-erU" kind="relationship" relationship="masterViewController" id="MBC-0A-hls"/> 
        <segue destination="xqk-PP-nzR" kind="relationship" relationship="detailViewController" id="sMq-cw-27p"/> 
       </connections> 
      </splitViewController> 
      <placeholder placeholderIdentifier="IBFirstResponder" id="nG8-BB-Qmu" userLabel="First Responder" sceneMemberID="firstResponder"/> 
     </objects> 
     <point key="canvasLocation" x="-157" y="-370"/> 
    </scene> 

違いは何を見てどこ

これはありますか?

<keyCommands> 
    <keyCommand/> 
</keyCommands> 

私はそれが何であるかわからない、またはそれがそこに着いたか、私はそれらの3行を削除するときにクラッシュが去っていきました。 UIKeyCommandクラスがありますが、それを使用したことはありませんので、関連性があるかどうかはわかりません。お役に立てれば!

+1

あなたのためのインターネットポイント!よくやった。私は自分自身の違いを分析していましたが、まだそれらを見つけていませんでした。私はアップルをこれで更新するつもりです、これはデバイスがクラッシュする恐れがあります。私はまったく同じView Controllerを持っていませんでしたが、私はkeyCommands XMLの同じチャンクを持っていました。私の問題を解決したそれを削除します。 – Ceryni

+0

あなたは私の名声を持っています。私はこれらのストーリーボードとIOS9のセグの問題に対処する私の頭をリッピングしてきた私の魂に回復不能な損傷を引き起こしています。私がそのsegueを置き換えるたびに、別のものが魔法のように消えてしまい、UIBarButtonItemを取り除いてプログラム的にやってみると、私は悲しみを引き起こしていました。彼らはiOS7、iOS8、iOS9だけでなく、アプリをクラッシュさせずに動作するだろうが、iPhone/iPadなどの完全なものは!!!!!もう。これは私にストーリーボードをねじ込み、私が欲しいものをプログラムすることにつながっています。 –

+2

キーコマンドのUIは、View ControllerのAttributesインスペクタの下部にあります。考えられる原因は、+ボタンが誤って押されていて、追加フィールドを入力する必要があることを認識していないことです。また、空のキーコマンドのクラッシュは、iOS 9の新しい動作のようです。radar:// 23193389は、ビルド時に空のキーコマンドが報告されないという根本的な問題を追跡しています。コマンド。 –

0

ログには何が間違っているかが正確に示されます。

nullオブジェクトに対してisEqualToStringを呼び出そうとしています。

このオブジェクトが、isEqualToStringを呼び出す前に期待するオブジェクトであるかどうかを確認します。

しかし以前のバージョンのOSで動作していたので、nullをチェックしても問題が解決しない場合があります。なぜこのアイテムが今どこにいなかったのか、なぜnullになったのか解明する必要があるかもしれません。他の人が述べたように

+0

これは、リテラルエラーメッセージが報告されていることに同意しますが、どのスタックトレースも自分のコードにリンクされていないと、これが起こっている場所をどのように見つけることができますか?それらはすべてCoreFoundationまたはbackboarddでソースされています。私は青い水痘を持っているように私のプロジェクトは非常に多くの例外/エラーブレークポイントを持っています。 – Ceryni

+0

私はあなたのコードでisEqualToStringを検索し、それを呼び出すオブジェクトがnullであるかどうかを調べることから始めます。あなたは、シム全体がクラッシュしてはならないと言っているのは間違いありません。だから、他に根本的な問題があるかもしれない。それはあなたのプロジェクトですか?あなたは別のプロジェクトを実行しようとすると、まだシムはクラッシュしますか? iOS 9シムの一部であるファイルが誤って変更されましたか?どこに保存されていますか?あなたのビルド設定はどうですか?あなたはシミュレータの内容と設定をリセットしようとしましたか?きれいにクリアされた派生データが完成しましたか? –

+0

"あなたのコードでisEqualToStringを検索することから始めます" - 私は 'isEqualToString'にブレークポイントを設定しましたが、NSNulls上では何も関数呼び出しが行われていません "それはあなたのプロジェクトですか?あなたは別のプロジェクトを実行しようとしていますか? - 私のプロジェクトでは、Simulatorは他のプロジェクトで正常に動作します。私のプロジェクトも8.4シミュレータで正常に動作します 「iOS 9シムの一部である誤ってファイルを変更しましたか?どこに保存されているのですか?」 - 私は奇妙なことをしたかもしれないと恐れていたので、 9.0シミュレータを開発し、新しいものを追加しました。同じ結果。 – Ceryni

-1

あなたはそれがあなたのコードである場合、クラッシュがある場所を正確にあなたが知っているので、あなたは例外ブレークポイントを設定することができますかわからない場合、あなたは[NSNull isEqualToString:]

にクラッシュされています。あなたはブレークポイントナビゲータに行くことでそうすることができます。あなたはブレークポイントを設定すると、もう一度あなたのアプリを実行することを持って、それがクラッシュがどこにブレークポイントを設定する必要があります一度

enter image description here

:左下に、あなたは例外ブレークポイントを追加するための+ボタンがあります。がんばろう!

+0

提案していただきありがとうございますが、このブレークポイントを追加してもこのエラーは発生しません。シミュレータはまだ再起動/クラッシュします。 – Ceryni

関連する問題