Advanced Setup |
Twitterでは細かい設定不要で Jenkins と XCode Bots をサポートしています。 Onboard your app using Fabric, push to your server and we’ll receive your dSYMs automatically.
プロヒント:サーバでは Xcode.appをクローズし、Crashlytics.appをインストールしないよう気をつけてください。
Build ServersWe support Jenkins and XCode Bots right out of the box. Onboard your app using Fabric, push to your server and we’ll receive your dSYMs automatically. Pro tip: Make sure that Xcode.app is closed and Crashlytics.app isn’t installed on the server. |
Crashlytics.Framework を別のディレクトリに移動させることは可能です。; ただ `Run Script Build Phase` が新しいディレクトリを指すように更新するだけです。
例: 既定の Crashlytics run script build phase は以下となっています:
./Crashlytics.framework/run <your_api_key_here>
Crashlytics フレームワークを“Vendor”という名前の一つ下の階層に移動させる場合、run script build phaseを以下のように変更する必要があります。:
./Vendor/Crashlytics.framework/run <your_api_key_here>
Build Phase Cheat Sheet を使うと助けになるでしょう。
Moving the iOS FrameworkIf you want to move Crashlytics.Framework to another directory, you can; just be sure to update the `Run Script Build Phase` to point to the new directory. Example: The default Crashlytics run script build phase is: ./Crashlytics.framework/run <your_api_key_here> If you move the Crashlytics framework one level down, to a directory called “Vendor”, you’ll need to modify the run script build phase to be: ./Vendor/Crashlytics.framework/run <your_api_key_here> You can use our XCode Build Phase Cheat Sheet to help. |
既定のセットアップでは、全てのビルドにおいてアプリのdSYMファイルを取得するようにします (ビルドする際はコードが変更されていると考えられられるため)。 この設定のおかげで、アプリの開発中や内部テスト中にクラッシュが発生した場合、クラッシュの原因となったコードの正確な行の表示がされます。
Crashlytics を特定のビルドでのみ実行したい場合は、 run script build phaseに希望する時のみ実行するロジックを追加することができます。以下を参考にしてやってみましょう:
releaseConfig="Release" if [ "$releaseConfig" = "${CONFIGURATION}" ]; then echo "Running Crashlytics" ./Crashlytics.framework/run <your_api_key_here> fi
Conditional dSYM UploadThe default set up process ensures that we get your app’s dSYMs on every build (assuming a code change). This is the preferred configuration, so that if a crash comes while you develop and do internal testing, we can show you the exact line of code that caused the crash. However, if you would like to run Crashlytics only on certain builds, you can add logic to the run script build phase to only run when desired. Try something similar to: releaseConfig="Release" if [ "$releaseConfig" = "${CONFIGURATION}" ]; then echo "Running Crashlytics" ./Crashlytics.framework/run <your_api_key_here> fi |
dSYMsがピックアップされてにないと判明した場合、アプリの設定ページ](https://fabric.io/settings/apps)へ行ってアプリを選択し、後述のようにURL最後に “mappings”を追加することによってdSYMsを手動で追加できます。:
https://fabric.io/settings/apps/<my_app_id>/mappings
こうすることで、dSYMsを手動でアップロードできるページが表示されます。
Uploading dSYMs ManuallyIf you find that dSYMs aren’t being picked up, you can add them manually by going to your app settings page](https://fabric.io/settings/apps), selecting an app, and appending “mappings” to the end of the URL, e.g.: https://fabric.io/settings/apps/<my_app_id>/mappings This will take you to a page where you can manually upload your dSYMs. |
Crashlytics を複数のターゲットに対して実行するには、Crashlytics Run Scriptを各ターゲットのBuild Phaseに追加します。 既定の Crashlytics run script build phase は以下の通りです:
./Crashlytics.framework/run <your_api_key_here>
Multiple TargetsTo run Crashlytics with multiple targets, add a Crashlytics Run Script to each target’s Build Phase. The default Crashlytics run script build phase is: ./Crashlytics.framework/run <your_api_key_here> |
あなたがMyAwesomeApp と呼ばれるアプリを持っており、そのアプリの開発バージョンと製品バージョンのどちらにも同じIDをつけたいとします。
最も簡単な方法は、各バージョンごとに組織アカウント(organization )を分けて作成し、組織アカウントに対応した各バージョンのMyAwesomeApp をオンボードし (各組織アカウントごとに専用のAPIキーを取得するようにしてください。) 、全ての設定をすることです。
なぜこの方法を取るのか?
Apps with Multiple EnvironmentsLet’s say you have an app called MyAwesomeApp and you want to keep the bundle id the same, even though you have a staging, dev and prod version of your app. The easiest thing to do is create a separate organization for each version, onboard each version of MyAwesomeApp to the corresponding org (just make sure you grab the new API key for each org) and you’re all set. Why do it this way?
|
既定では、この機能は無効になっています。あなたのアプリのいずれかのバージョンでクラッシュが発生した時、このクラッシュを報告するかどうかをユーザーに確認します。 我々の分析データによるとほとんどのユーザーがクラッシュの報告を拒否するので、この機能は無効のままにすることをお勧めします。 有効にしたいのであれば、アプリの設定ページで有効にできます。
Privacy DialogBy default, this feature is disabled. When a crash occurs in any version of your app, this will ask your users if that crash should be reported. Our analytics data shows that most users will decline to report crashes, so we recommend leaving this disabled. If you’d like to enable it, you can do it in your app settings page. |
Crashlyticsの“Send Crash Report”ダイアログを国別言語対応したい場合、 プロジェクトのローカライズリソース内にある “Crashlytics.strings”と呼ばれる標準文字列ファイルをインクルードしなければなりません。
以下のキーを使用できます:
任意の言語でこれらのキーの値を設定すると、Twitter web UIの該当項目がその値で上書きされます。 However, you still must use the web UI to control the presence of the “always send” button and the prompt dialog itself.
Crashlytics.strings ファイルの例:
/* Crashlytics.strings */ "CrashlyticsCrashSubmissionPromptTitle" = "Send Crash Report?"; "CrashlyticsCrashSubmissionPromptMessage" = "Looks like we crashed! Please help us fix the problem by sending a crash report."; "CrashlyticsCrashSubmissionSendTitle" = "Send"; "CrashlyticsCrashSubmissionAlwaysSendTitle" = "Always Send"; "CrashlyticsCrashSubmissionCancelTitle" = "Don't Send";
AdvancedIf you want to localize the “Send Crash Report” dialog within Crashlytics, then your app must include a standard strings file called “Crashlytics.strings” in your project’s localizable resources. We use the following keys:
The presence of any one of these keys for any language will override any settings in our web UI. However, you still must use the web UI to control the presence of the “always send” button and the prompt dialog itself. Sample Crashlytics.strings file: /* Crashlytics.strings */ "CrashlyticsCrashSubmissionPromptTitle" = "Send Crash Report?"; "CrashlyticsCrashSubmissionPromptMessage" = "Looks like we crashed! Please help us fix the problem by sending a crash report."; "CrashlyticsCrashSubmissionSendTitle" = "Send"; "CrashlyticsCrashSubmissionAlwaysSendTitle" = "Always Send"; "CrashlyticsCrashSubmissionCancelTitle" = "Don't Send"; |