2017-05-11 7 views
1

dSYMSとCrashlyticsがどのように処理するかについて質問があります。iOS - Crashlyticsが不足しているdSYMSを処理する方法

私のアプリケーションには異なるターゲットが含まれており、Watchkit AppWatchkit App Extensionターゲットのために、プロジェクト全体がbitcode enabledでコンパイルされています。

その後、不足しているdSYMを手動でアップロードするためにMissing dSYMs Documentationに従った。 これは機能しました。必要な欠落したdSYMがダッシュボードにストライピングされました。

しかし、私はそれがどのくらい正確に機能しているのだろうと思いましたか?このバージョンの私のアプリケーションは1ヶ月間AppStoreにあります。

dSYMをアップロードした今日からのクラッシュレポートのみが表示されますか? リリースごとに手動でアップロードする必要がありますか?

私は実際にプロセスを理解していません。

答えて

4

マイクからのファブリックはこちら。

dSYMには、完全に記号化されたスタックトレースを提供するために必要なアプリのシンボルが含まれています。 Xcodeでローカルにビルドすると、dSYMはローカルマシン上にあるので、ファブリックrun script build phaseがアップロードできます。

ビットコードを有効にすると、アップルは新しいdSYMを作成するサーバーでアプリケーションを再コンパイルしています。彼らのサービスで起こっているので、Fabricはこれらを自動的にアップロードする方法がありません。 AppleはXcodeまたはiTunesConnectを通じてdSYMを提供しています。これらのdSYMにアクセスすることはできません(アップルの開発者の資格情報が必要なので、その資格は必要ありません)。アップルからdSYMを入手し、AppleまたはTestflightを通じて各リリースのFabricにアップロードする必要があります。 upload-symbolsスクリプトを使用して、バルクでアップロードすることもできます。 upload-symbolsスクリプトは、CIマシンからも動作します。

クラッシュがファブリックに入力されると、クラッシュを表すのにdSYMが必要かどうかがわかります。そうしないと、ダッシュボードとファブリックアプリの設定ページから通知されます。クラッシュにdSYMがない場合は、7日間保管します。現時点で欠落しているdSYMがアップロードされていない場合は、クラッシュを破棄し、処理しません。欠落しているdSYMがアップロードされた場合、クラッシュは処理されるようにエンキューされ、処理と表示には数分から数時間かかることがあります。

これを処理する最善の方法は、まだdSYMが見つからない場合でも、upload-symbolsスクリプトを使用してシンボルを取得し、クラッシュが発生したときにシンボルが表示されるようにすることです。クラッシュが報告されたときにdSYMがある場合、クラッシュは数秒以内に(平均で)処理されます。

fastlane's refresh_dsymsコマンドを使用してdSYMを取得してアップロードする方法もあります。

+0

あなたの答えをありがとう、それは私が期待していたすべてを提供しました。 Jenkinsでupload-symbolsスクリプトを使用できると思いますか? 私たちはiTunesConnect上でビルドをアーカイブしてエクスポートするための自動化された継続的な統合システムを持っています。 – Balanced

+0

喜んで助けてください、はい、それはCIで動作するはずです。何かが失敗した場合、スクリプトはエラーを出力するので、それらのビルドログを見たいと思うでしょう。 –

+0

パーフェクト。ありがとう、マイク、私はそれをテストします。 – Balanced

関連する問題