[Xamarin][iOS] Debug ビルドに異様に時間がかかる
現象
Xamarin でデバッグ実行のビルド時間が異様に長くなることがあります。最初に気づいたときは移動中の新幹線の中でビルドをしていたら時間が異様にかかって10分経っても終わらないということがありました。
また、あるときはリモートワークで在宅では遅いということもありました。同じ PC(Mac) と実機を使ってのデバッグ実行なのですが、明らかにビルド時間が変わるので、これはなにか通信環境が影響しているのではないかと考えられます。
ビルドをするだけで通信が発生するのも変な話ですが……。
原因
Xamarin に Firebase.Crashlytics のパッケージを入れていると発生することがあります。
Crashlytics で人間が判読可能なクラッシュ情報を見るためには dSYM ファイルというものが必要です。
dSYMファイルとは Xcode によって生成されるデバッグシンボルファイルです。これをアップロードしないとクラッシュ情報を見てもソースコードのどの位置でエラーが発生したのか、なかなかわかりません。
Xamarin ではこのファイルをビルドすると自動でアップロードするようになっています。そのため手動で毎回アップロードしなくてよいのですが、このファイルが数十 Mbyte と大きくなることがあるので、通信回線によってはここで時間がかかるのでは無いかと考えられます。
対象方法
iOS の .csproj に以下が追加されているかを確認します。
1 2 3 4 5 |
<PropertyGroup> <FirebaseCrashlyticsUploadSymbolsContinueOnError>True</FirebaseCrashlyticsUploadSymbolsContinueOnError> </PropertyGroup> |
上記を False にするかまるごと削除すれば dSYM ファイルはアップロードされなくなります。
頻繁にビルドする開発環境では Crashlytics の動作確認ができたら無効化した方が良いと思われます。
参考サイト
以下の記事が参考になりました。少し古いため初期化処理のメソッド名などは変わっていてそのまま使えない場合などありますが、全体像を把握するには参考になります。
- Firebase Crashlytics を使ってみる | Firebase Documentation
- [Xamarin.Forms] Firebase Crashlytics を導入してみた (Android & iOS)
- Xamarin に Firebase を導入する
ITエンジニア募集中!
キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。
下記よりITエンジニア募集の採用情報をご覧いただけます。