web-dev-qa-db-ja.com

シンボルファイルをアップロードする

Firebase Crash Reportingページで、クラッシュの完全な情報(たとえば、行数、ファイルなど)を見つけることができません。と言っているからかもしれないと思った

シンボルファイルをアップロードして、UUIDの将来のスタックトレースをシンボリック化します- - --***

私に言って

コマンドラインを使用して、Xcodeプロジェクトフォルダーに移動し、以下を実行します。/Pods/FirebaseCrash/batch-upload- = ---***

残念ながら、Xcodeプロジェクトでそのコマンドを実行しようとすると、次のメッセージが表示されます。

- ---***:警告:実行可能ファイルまたはバンドルがありません。

firebaseでは何も変更されません。多分それは有効にされたビットコードのためですか?どうすれば解決できますか?

P.S. :UUIDを- ---***セキュリティ上の理由から。

12
Zac

この答えは、CocoaPodsを使用していない場合です。

CocoaPodsを使用していない場合は、Podsディレクトリから、提供されているFirebaseライブラリの標準セットに含まれていないファイルが必要になります。

以下に示す5つのファイルがあります: FirebaseCrash required files

batch-uploaddump_symsupload-symupload-sym-util.bash、およびupload-sym.shが必要になります。これらのファイルは、FirebaseCrashポッドファイルから取得できます。

それらをプロジェクトディレクトリにコピーし、"${PODS_ROOT}"/FirebaseCrash/をそれらのファイルを指すディレクトリに置き換えると、機能するはずです。

注:Jenkinsのようなビルドサーバーを使用する場合、このソリューションにはまだ問題があります。まだそこでやるべきことがいくつかあります。


これは、CocoaPodsを使用しないアプリに必要であることがわかりました。これはあなた自身の使用に直接関係しないかもしれませんが、少なくとも私は答えを見つけようとしている他の誰かのためにそれを含めるべきだと思います。

9
Chris Conway

現在、サードパーティの共有ライブラリ(動的フレームワーク)でいくつかの問題が発生しているため、共有ライブラリを使用している場合は問題が発生します。以下の手順に従いますが、アプリの実行可能ファイルへのパスを共有ライブラリへのパスに置き換えます。

そうでない場合は、クラッシュが報告された元の実行可能ファイルが失われている可能性があります。同じソースで再構築された場合でも、LC_UUIDフィールドは変更されます。

  1. UUIDが実行可能ファイルに対して正しいことを確認します。

    dwarfdump --uuid / path/to/your/build/area/MyApp.app /MyApp

    欠落しているUUIDと一致するUUIDがない場合は、ゲームオーバーです。ごめんなさい。 Time Machine、Carboniteなどから実行可能ファイルを復元することができますが、それだけです。

  2. UUIDの1つが一致する場合(アーキテクチャごとに1つあります)、元の実行可能ファイルはまだありますが、dSYMバンドルが欠落している可能性があります。 dSYMが欠落していることを確認できます。

    mdfind com_Apple_xcode_dsym_uuids =UUID

    応答がないはずです。

  3. DSYMバンドルを再生成します。

    dsymutil -o = upload.dSYM/ path/to/your/build/area/MyApp.app /MyApp
  4. DSYMバンドルが登録されていることを確認します。

    mdfind com_Apple_xcode_dsym_uuids =UUID

    1つの応答が返されるはずです:upload.dSYM作成したばかりです。

    表示されない場合は、数秒待ってからもう一度お試しください。

  5. 実行batch-uploadUUID再び。

  6. それでも機能しない場合は、実行可能ファイル自体を処理することで部分的な結果を得ることができます。実行batch-upload/path/to/your/build/area/MyApp.app/MyApp部分的な記号を取得します。

8
Robert Menke

私の場合(COCOAPODSなし):

1)ディレクトリ「Crash」からすべてのファイルをインポートします

enter image description here



2)次のように[ビルドフェーズ]タブにスクリプトを追加します。

# Replace this with the GOOGLE_APP_ID from your GoogleService-Info.plist file
GOOGLE_APP_ID=1:xxxxxxxxxxxx:ios:xxxxxxxxxxxx

# Replace the /Path/To/ServiceAccount.json with the path to the key you just downloaded
"${SRCROOT}"/upload-sym "${SRCROOT}/*NameOfTargetDirectory*/ServiceAccount.json"



スクリプトで「NameOfTargetDirectory」を変更する必要があり、機能します。

1
matt