web-dev-qa-db-ja.com

Crashlyticsが不足しているDSYMファイルを毎回要求するのはなぜですか?

私はアプリでCrashlyticsを使用していますが、すべて正常に機能しています。 Crashlyticsもうまく機能しています。

しかし問題は、私がアプリの新しいビルドを作成しているときはいつでも不足しているDSYMファイルのアップロードが新しく表示されることです。

これに対する解決策はありますか?

ファブリックドキュメントで、これを見つけました。しかし、私はこれを理解していませんでした。

この問題を解決する方法を誰かに説明できますか?

https://docs.fabric.io/Apple/crashlytics/advanced-setup.html

enter image description here

8
Anup Gupta

TL; DR

コード行を追加した後でプロジェクトを再コンパイルするたびに、結果のバイナリのコード行のアドレスが同じでないため、dSYMが変更されます。

dsymのアップロードに関するファブリックドキュメント を見て、ビルドフェーズを追加してdSYMを自動的にアップロードするか、@ ekscryptoのようにビルドフェーズを自動的に追加するCrashlyticsの代わりにファブリックポッドを使用できます。

これを手動で行う場合は、xcarchiveを開いて、dSYMを見つけ、crashlyticsにアップロードします。

もっと詳しく

dSYMはデバッグSYMbolsの略です。これは、crashlyticsが受信したクラッシュログを解決し、発生する可能性のあるクラッシュ/バグに関する詳細情報を表示するのに役立ちます。

アプリをアーカイブすると、*。xcarchive "ファイル"が残ります。これは、実際に参照できるフォルダーです。このxcarchive内に、dSYMがあるdSYMフォルダーが必要です。

表示するには、まずXCodeでオーガナイザーウィンドウを開き([ウィンドウ]> [オーガナイザー]またはcmd + shift + 6)、最後のアーカイブを右クリックして[Finderに表示]をクリックします。開いたFinderウィンドウで、アプリの最後のxcarchiveを右クリックし、[コンテンツの表示]をクリックします(画像がフランス語で表示されて申し訳ありません) browse xcarchive contents

これにより、xcarchive内に移動し、アプリのdSYMを確認できます

dSYM for the app

これをcrashlyticsにアップロードすると問題が解決します

6
user3476114

簡単な手順に従ってください1アーカイブに移動し、firebaseでクラッシュレポートを取得する最新バージョンを右クリックします2 dsymsフォルダーを確認します3 dsymsフォルダーのZipファイルを作成します4最後にそのZipファイルをFirebaseコンソールにアップロードします

2

xcodeプロジェクトの[Build Phases]の下に、上記の実行スクリプトを追加します。

"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

enter image description here

1
Mahgol Fa

Crashlyticsフレームワークだけでなく、新しい「Fabric」フレームワークも統合してください。そうすると、プロジェクトのビルドフェーズで新しいスクリプトが作成されます。

Xcode project Build Phase script for Fabric.io

このスクリプトは自動的にdSYMを見つけ、ビルドと一緒にそれをFabric.io/Crashlyticsシステムにアップロードします。

1
ekscrypto

このエラーは、一部のdSYMファイルが欠落していることを意味します。推奨されるアプローチは、dSYMファイルをCrashlyticsに常にアップロードすることです。

CrashlyticsFirebaseに統合されたため、ドキュメントがわずかに変更されました。 https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports-new-sdk

  1. Crashlyticsを統合する:pod 'Firebase/Crashlytics'
  2. スクリプト実行フェーズを追加します:find "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}" -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp ${SRCROOT}/GoogleService-Info.plist -p ios \{\}

アプリをデバッグビルドするたびにdSYMファイルをアップロードしたくない場合: https://support.crashlytics.com/knowledgebase/articles/118559-can-i-make-the-dsym-uploading -only-on-release-buil

0
CoderPug