1つのiOSアプリケーションでCrashlyticsをセットアップし、実際のデバイスにアプリケーションをインストールしました。私のCrashlyticsダッシュボードにそれが表示され、アプリが正常に追加されました。ただし、クラッシュレポートは送信しません。私のインターネット速度はそれほど良くありません。しかし、私はこのデバイスから私のメールをチェックできます。誰が問題を推測できますか?
Xcodeデバッガーは、Crashlyticsがクラッシュレポートを処理することを許可しません。ええ、それを初めて読んだとき、それは私にとっても奇妙に思えますが、それは事実です( Source )。これが、クラッシュレポートが表示されない理由です。
-シミュレーターでアプリを実行する
-デバッガをオンにしてXcodeから直接ビルドおよび実行することにより、iDeviceでアプリを実行します。
テスト中にクラッシュが報告されたことを確認するには( Crashlyticsサポートサイトからコピー ):
1。シミュレーターを起動する
2。停止ボタンを押す
3。アプリを起動してクラッシュを強制する
4。シミュレーターからアプリを再起動します
5。 Webダッシュボードのクラッシュレポートを参照してください。
編集:
参照を追加しました。 Crashlyticsでは、 クラッシュを強制する簡単な方法 に関する短い記事と 最初のクラッシュからのデータが表示されない理由 に関する記事も提供しています。
クラッシュレポーターがiOSで動作しない主な理由は、さまざまなクラッシュレポーターからの干渉が原因です。ただし、特にCrashlyticsを使用すると、Crashlyticsに固有の何かが原因でクラッシュレポートがレポートされない可能性があります。
Xcodeデバッガーでは、Crash Reporterがクラッシュレポートを処理することを許可していません。これは、XCodeがクラッシュ処理コールバックへのフックをオーバーライドするためです。これは次の場合にのみ発生します。
テスト中にクラッシュが報告されたことを確認するには( http://support.crashlytics.com/knowledgebase/articles/92523-why-can-t-i-have-xcode-connected- ):
非常に古いビデオですが、関連性はありますが、ここに上記の手順のビデオがあります(Crittercismの例): https://www.youtube.com/watch?v=sU6Su3PBFH4
私にとって問題は、デバイスが私のMacに接続されていたことでした:)から このソース :
また、デバイスをMacに接続している場合は、XCodeのデバッガーも介入します。したがって、テストする前にデバイスを取り外してください:)
最近この問題に遭遇しましたが、ビルドスクリプトが削除されている途中のどこかで見つかりました。以下を追加して追加すると、問題が修正されました。./Crashlytics.framework/run <your_api_key> <build_secret>
注:Cocoapodsを使用する場合、上記の代わりに次のようにする必要があります( source ):./Pods/CrashlyticsFramework/Crashlytics.framework/run
ビルドスクリプトの追加:
- Xcode 6でRun Script Build Phaseを追加するには、プロジェクトでアプリケーションターゲットを選択し、「Build Phases」を選択します。
- 小さな「プラス」アイコンをクリックし、「新規スクリプト実行ビルドフェーズ」を選択します。
- 上記のように、ビルドフェーズオプションの中央に[スクリプトの実行]セクションが表示されます。
- Run Script Build Phaseの本文内に、スクリプトを貼り付けます。
上記の引用は、Crashlyticsの visual tutorial に由来し、 この投稿 で参照されています。
注:私はもともとこの回答を逐語的に Crashlyticsエラーコード:ファイル送信時の202 に投稿しました。
次の手順を使用して解決策を見つけました
1。スキームの編集2に移動します。実行->情報3.ビルド構成をリリースに変更します。次に、アプリを実行してクラッシュします。メールが届きます。
RayWenderlichサイトから:
Xcodeがクラッシュイベントをインターセプトした場合、クラッシュレポートは表示されません!以下のすべての例を機能させるには、アプリケーションをビルドして実行し、Xcodeの停止ボタンをクリックする必要があります。これにより、最新バージョンがデバイスにインストールされます。それが完了したら、デバイス自体でアプリを起動し、必要なすべてをクラッシュさせることができます! iOSデバイスでのすべてのクラッシュがキャッチされ、アプリに統合したサービスのサーバーコンポーネントに送信されます。通常、クラッシュレポートは、次にアプリを起動したときにサーバーに送信されるため、サーバーでクラッシュレポートを生成する手順は次のとおりです。Xcodeでビルドして実行します。停止ボタンを押します。 iOSデバイスでアプリを実行します。アプリをクラッシュさせます。アプリを再度実行します。
テストクラッシュコードを試すときに、同様の問題が発生しました。
Crashlytics.sharedInstance().crash()
Xcodeを使用せずにデバイスからアプリを実行していましたが、クラッシュはCrashlyticsダッシュボードに表示されませんでした。私のために働いたのは、Crashlyticsのウェブサイトからの次のヒントでした:
上記のcrash()呼び出しをコメントアウトして、アプリを再実行しました。その後、クラッシュがダッシュボードに表示されました。
クラッシュをあまりにも早く強制していないことを確認してください。
セットする [Crashlytics sharedInstance].debugMode
からYES
;
気をつける
Crashlytics] Settings loaded
xcodeコンソールのログ。
その後、クラッシュを強制してアプリを再起動すると、クラッシュが報告されます。
Crashlyticsは今まで私のために働いています。理由はわかりませんが、現在は機能しません。
デバッグモードをオンにする必要があります
[Crashlytics sharedInstance].debugMode = YES;
私の問題はここにあります Crashlyticsエラーコード:ファイルを送信するときの202 :(
DSYMファイルをアップロードしない場合、レポートが正常にアップロードされたとしても、Crashlyticsはクラッシュを表示しません。
CIサーバーでのみ実行するようにビルドスクリプトを設定した場合、この問題が発生する可能性があります。次に、xcodeを使用してアプリを電話にコピーし、デバッガーにアタッチせずに実行すると、dSYMファイルがないため、レポートはアップロードされますが無視されます。
[[Crashlytics sharedInstance] crash]
デバイス上で、それが報告されるかどうかを確認しますか?他のクラッシュレポーターなど、Crashlyticsが機能しない理由はいくつかあります。
ログが表示されるまでに時間がかかる場合があります。 15〜20分後にそれらを見つけることができます
スクリプト実行フェーズでは、CrashLyticsの別のスクリプト実行フェーズである必要があると思う問題の1つです。実行スクリプトがあったとき
./Fabric.framework/run
私の他のスクリプトのいくつかでは、すべてが問題なく、CrashLyticsログショーレポートが送信されましたが、Webインターフェイスには何もありませんでした。
Fabric実行のみで別のRunスクリプトフェーズを追加すると、魔法のように見えます:)
私の最初の試みはココアポッドでしたが、うまくいきませんでした。すべてのフレームワークと、動作する別のスクリプト実行フェーズを手動で追加すると。