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