CrashlyticsはiPhoneからクラッシュレポートを送信していません


86

1つのiOSアプリケーションでCrashlyticsをセットアップし、アプリケーションを実際のデバイスにインストールしました。Crashlyticsダッシュボードにそれが表示され、アプリが正常に追加されました。ただし、クラッシュレポートは送信していません。私のインターネット速度はあまり良くありません。しかし、私はこのデバイスから自分のメールをチェックすることができます。誰かが推測できますか、問題はどこにありますか?


5
Crashlyticsサービスでも同じ問題が発生しています。デバイスからのクラッシュレポートは(私の経験では)送信されることはなく、シミュレーターからのみ送信されます。Crittercismのクラッシュレポートとエラー処理を使用することになりました。
サムスペンサー

私にも同じことが起こっています。実際の開発デバイスとは別のデバイスでアプリケーションを試してください。こうすることで、クラッシュレポートを取得できます。
Samet DEDE 2013

はい、開発デバイスを使用しています。それは問題を引き起こしていますか?
farhad rubel 2013

1
完全なセットアップの説明またはテストプロジェクトがなければ、これに答えることは不可能です。Crashlyticsサポートに連絡する必要があります。ワイルドな推測は役に立ちません。
ケルニ2013

3
Crashlyticsの誰かがStackOverflowで私のこの投稿を見て、彼がメールで私に連絡してくれたことにとても驚いています。彼は私がこの問題を解決するのを手伝ってくれています。しばらく様子を見てみましょう。
farhad rubel 2013

回答:


84

Xcodeデバッガーは、Crashlyticsがクラッシュレポートを処理することを許可しません。ええ、それを初めて読んだときは私にも奇妙に思えますが、それは事実です(出典)。これが、クラッシュレポートが表示されない理由
です。次の場合:-シミュレーターで
アプリを実行する-デバッガーをオンにしてXcodeから直接ビルドして実行することにより、iDeviceでアプリを実行する。

テスト中にクラッシュが報告されていることを確認するには(Crashlyticsサポートサイトからコピー):
1。シミュレーターを 起動します
2.停止を押します
3.アプリを起動して強制的にクラッシュさせます
4.シミュレーターからアプリを再起動します
5.のクラッシュレポートを参照してくださいWebダッシュボード。

編集:

参照を追加しました。Crashlyticsは、クラッシュを強制する簡単な方法に関する短い記事も提供しています。


6
これは私を助けました。場合によってはそれも発見しました。Crashlyticsは、アプリケーションを再度開かない限り、クラッシュレポートを送信しません。繰り返しますが、ユーザーはクラッシュを経験します。ユーザーがアプリケーションを再度開きます。Crashlyticsは以前のクラッシュレポートを送信します。
tambykojak 2014

1
@tambykojakこれは、iOSのクラッシュがほとんどの場合非常に不安定であり、すぐに送信するよりも、次のアプリの読み込み時にクラッシュレポートを送信する方が安全な方法であるためと考えられます。多くのクラッシュレポートツールは、iOSおよびその他の非VMクラッシュハンドラーでこのパラダイムを使用します。
pixelknitter 2014年

2
ありがとうございました。これは正解としてマークする必要があります:)
iMemon 2015

この場合、dsymをアップロードする必要がありますか?もしそうなら、どこでそれらを見つけることができますか?
SoliQuiD 2017

リンクが切れています。
ラッキー

67

遅いけど100%働く

下の画像のように、プロジェクトのビルド設定にいくつかの変更を加えます

ここに画像の説明を入力してください

これらの指示に従ってください。


ビットコードを無効にした後でも、dSYMSエラーが時々見落とされ、シミュレーターでデバッグするときは100%の確率で発生していました。これで修正されました。ありがとうございました。
user3344977 2016

この設定を変更することで、
Firebase

21

クラッシュレポーターがiOSで機能しない主な理由は、さまざまなクラッシュレポーターからの干渉によるものです。ただし、特にCrashlyticsを使用すると、クラッシュレポートが報告されない原因となる特定の何かが存在する可能性があります。

Xcodeデバッガーは、Any CrashReporterがクラッシュレポートを処理することを許可しません。これは、XCodeがクラッシュ処理コールバックへのフックをオーバーライドするためです。これは、次の場合にのみ発生します。

  • シミュレーターでアプリを実行しています(デバッガーをオンにしています)
  • デバッガーをオンにしてXcodeから直接ビルドして実行することにより、iDeviceでアプリを実行します。

テスト中にクラッシュが報告されていることを確認するには(http://support.crashlytics.com/knowledgebase/articles/92523-why-can-ti-have-xcode-connected-):

  1. シミュレーターの起動
  2. プレスストップ
  3. アプリを起動して強制的にクラッシュさせる
  4. シミュレーターからアプリを再起動します
  5. Webダッシュボードのクラッシュレポートを参照してください。

非常に古いビデオはまだ関連していますが、上記の手順のビデオがあります(Crittercismの例):https//www.youtube.com/watch?v = sU6Su3PBFH4


1
Crashlyticsは、接続されているデバッガーを検出すると、それ自体を無効にします。動作しないためではなく、デバッガーが正しく動作しなくなるためです。Crashlyticsは、デバッガー自体が使用するのと同じメカニズムを使用します。SDKが通常のデバッグフローを台無しにするのは本当にイライラします。参考までに、CrashlyticsSDKのほとんどを作成しました。
Mattie 2018

9

私にとって、問題はデバイスが私のMacに接続されていたことでした:)このソースから:

また、デバイスがMacに接続されている場合は、XCodeのデバッガーも介入します。したがって、テストする前にデバイスを切断するだけです:)


7

次の手順で解決策を見つけました
1. [スキームの編集]に移動します2. [実行]-> [情報]3。[ビルド構成]をリリースに変更します。アプリを実行するとクラッシュします。メールが届きます。


6

最近この問題が発生しましたが、途中でビルドスクリプトが削除されていることがわかりました。以下を追加して、問題を修正しました。
./Crashlytics.framework/run <your_api_key> <build_secret>

注: Cocoapodsを使用する場合は、上記の代わりに次の情報を使用する必要があります(ソース)。 ./Pods/CrashlyticsFramework/Crashlytics.framework/run

ビルドスクリプトの追加:

  1. Xcode 6でスクリプト実行ビルドフェーズを追加するには、プロジェクトでアプリケーションターゲットを選択してから、[ビルドフェーズ]を選択します。
  2. 小さな「プラス」アイコンをクリックして、「新規実行スクリプトビルドフェーズ」を選択します。
  3. 上記のように、ビルドフェーズオプションの中央に[スクリプトの実行]セクションが表示されます。
  4. スクリプトビルドフェーズの本体内に、スクリプトを貼り付けます。`

上記の引用は、この投稿で参照されているCrashlyticsのビジュアルチュートリアルからのものですです。

注:私は当初、ファイルの送信時にCrashlyticsエラーコード202に対してこの回答を逐語的に投稿しました。


これは私を助けたようです。
クリスプリンス

1
以前Twitter統合にファブリックを使用していましたが、crashlyticsも必要で、フレームワークを追加し、すべての指示に従いましたが、ダッシュボードにクラッシュレポートが
届き

@iOS_Ramesh私はあなたを助けたいと思っていますが、それ以上のことを知らなければそれは難しいでしょう。これを行うには、現在の場所(統合するために実行した手順、適切なコードスニペット、およびCrashlyticsまたはコンソールから取得したフィードバック)の概要を示す新しい質問を開く必要があります。
ジェームズネルソン

私はすでに...新しい質問を投稿stackoverflow.com/questions/30215049/...
RameshIos

1
ヒントをありがとう。実行スクリプトで["Release" = "$ {CONFIGURATION}"]をチェックし、リリース構成の名前を変更しました。
マリアンチェルニー

4

RayWenderlichサイトから:

Xcodeがクラッシュイベントをインターセプトした場合、クラッシュレポートは表示されません。以下のすべての例を機能させるには、アプリケーションをビルドして実行し、Xcodeの停止ボタンをクリックする必要があります。このようにして、最新バージョンがデバイスにインストールされます。それが完了したら、デバイス自体でアプリを起動し、必要なすべてをクラッシュさせることができます!iOSデバイスでのすべてのクラッシュがキャッチされ、アプリに統合したサービスのサーバーコンポーネントに送信されます。クラッシュレポートは通常、次にアプリを起動したときにサーバーに送信されるため、サーバーでクラッシュレポートを生成するための手順は、次のとおりです。Xcodeでビルドして実行します。停止ボタンを押します。iOSデバイスでアプリを実行します。アプリをクラッシュさせます。アプリを再度実行します。



3

クラッシュを早すぎないように注意してください。

に設定[Crashlytics sharedInstance].debugModeYESます。

気をつける

Crashlytics] Settings loaded

Xcodeコンソールログ。

次に、クラッシュを強制してアプリを再起動すると、クラッシュが報告されます。


3

テストクラッシュコードを試したときに、同様の問題が発生しました。

Crashlytics.sharedInstance().crash()

Xcodeを使用せずにデバイスからアプリを実行していましたが、Crashlyticsダッシュボードにクラッシュが表示されませんでした。私のために働いたのは、CrashlyticsWebサイトからの次のヒントでした。

  • クラッシュをアップロードできるように、クラッシュ後にアプリを起動してください

上記のcrash()呼び出しをコメントアウトし、アプリを再実行しました。その後、クラッシュがダッシュボードに表示されました。


2

これは、crashlytics3.4.0のxcode9用です。 ステップ1 ステップ2

これを行った後、辛抱強く、数分待ちます。


1

[[Crashlytics sharedInstance] crash]デバイスで実行して、それが報告されるかどうかを確認しましたか?他のクラッシュレポーターなどを含め、Crashlyticsが機能しない理由はいくつかあります。


いいえ、int * x = NULLを使用しています。* x = 42; クラッシュレポートを表示するコード。さらに、私のアプリも異なるコアデータモデルでクラッシュしています。
farhad rubel 2013

1

dSYMファイルをアップロードしない場合、レポートが正常にアップロードされても、Crashlyticsはクラッシュを表示しません。

CIサーバーでのみ実行するようにビルドスクリプトを設定している場合は、この問題が発生する可能性があります。次に、xcodeを介してアプリを携帯電話にコピーし、デバッガーに接続せずに実行した場合、レポートはアップロードされますが、dSYMファイルがないため無視されます。



1

ログが表示されるまでに時間がかかる場合があります。私は15〜20分後にそれらを見つけることができます


0

スクリプトの実行フェーズでは、CrashLytics用の別のスクリプトの実行フェーズである必要があると私が感じる問題の1つです。スクリプトを実行したのはいつですか

./Fabric.framework/run

私の他のスクリプトのいくつかでは、すべてが問題なく、CrashLyticsログショーレポートが送信されましたが、Webインターフェイスには何もありませんでした。

Fabricの実行のみで別のRunスクリプトフェーズを追加すると、魔法のように見えます:)

私の最初の試みはココアポッドでしたが、それはうまくいきませんでした。すべてのフレームワークと、機能した個別のスクリプト実行フェーズを手動で追加した場合。


-1

これは私のために働いた、

iDeviceでテストしている場合は、XcodeでiDeviceを取り外し、アプリを実行するだけです。現在、クラッシュした場合、ダッシュボードで更新されます。


-3

スクリプトの実行(Fabric(crashlytics)用)オプションの「インストール時にのみスクリプトを実行」の選択を解除することで解決しました

ここに画像の説明を入力してください


これは、シンボルをCrashlyticsにアップロードするスクリプトにすぎません。クラッシュレポートが送信されないという問題をどのように解決しますか?シンボルがアップロードされていないときにCrashlyticsを使用しないようにするには、どのような手順を実行しますか?この答えは誤解を招くものであり、まったく間違っています。
ドロピー2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.