LoginSignup
2
0

More than 1 year has passed since last update.

AdHocアプリのクラッシュログ解析

Last updated at Posted at 2021-07-12

概要

この記事では、AdHoc配布されたアプリ上で発生したクラッシュログを解析する方法について記載しています。

AdHoc配布

AdHoc環境でのアプリ配布は、以下の様な方法があります。

  1. TestFlight
  2. Firebaseテスト配布
  3. DeployGate

いずれの方法で配布した場合でも、以降で記載するクラッシュログ解析方法は適用可能です。

クラッシュログを取得

この項目では、AdHoc環境で配布されたアプリのクラッシュファイルを実機端末から取得する方法を解説しています。

ipsファイルの取得

アプリのクラッシュログは、.ipsという拡張子ファイルに暗号化された情報が記載されているため、まずはこのクラッシュログファイルを実機端末から取得します。

  1. 実機端末内にある設定アプリの「プライバシー」→「解析および改善」→「解析データ」を開く
  2. クラッシュした日付が書かれた.ipsファイルを探す
  3. AirDropなど任意の方法で解析を実行するmacOSのPCに.ipsファイルを渡す

クラッシュログの解析

ipsファイルは生成されたままの状態だとクラッシュログが暗号化されているため、クラッシュ時のスタックトレースなどが目視では理解できない状態に鳴っています。
そのため、このipsファイルの中身を確認するにはSymbolicate(復元)をする必要があります。

dSYMファイルの取得

ipsファイルを複合するには、AdHoc配布されたアプリの.dSYMファイルが必要となります。
このdSYMファイルは、アプリプロジェクトを(Xcodeを使って)アーカイブした際に生成されるバイナリの中に格納されているので、そこから取得してください。
参考: https://www.lanches.co.jp/blog/10314

ipsファイルの復号

次に前項で取得したdSYMファイルを使用して、ipsファイルの中身を復号します。
復号をする場合は、Xcodeのコマンドラインツールを使用します。

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v ~/{path_to}/{file_name.ips} ~/{path_to}/{file_name.dSYM} > {output_file.txt}

コマンド中の変数は下記の用に書き換えてください。

  • {path_to}: 当該ファイルの格納されているパス
  • {file_name.ips}: 取得したipsファイル名
  • {file_name.dSYM}: 取得したdSYMファイル名
  • {output_file.txt}: 複合した内容を出力するファイル名
    • ※任意のパスに出力する場合はパスも記載してください。

注意事項

もし上記のコマンドを実行した際にError: “DEVELOPER_DIR” is not defined...の様なエラーが出力された場合、DEVELOPER_DIR変数が適用されていない事で処理が失敗しているため、下記のコマンドを実行して変数を適用します。

export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

また、上記の/Applications/Xcode.app/などは、Xcodeアプリの命名を独自で変更している場合に適切な命名に書き換えるようにしてください。

これで再度ipsファイルの復号コマンドを実行すれば、複合されたファイルが出力されるはずです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0