この記事は、Bitrise Advent Calendar 2020の1日目の記事です。夕食を食べて帰ってきてアドベントカレンダーを覗いたところ、20時時点で誰もエントリーしていなかったので書くことにしました。
Bitriseとは
今年に入ってからこのブログでも、Bitriseを使ってiOSアプリのビルド時間の短縮に挑戦する記事や Firebase iOS SDKをCocoaPods経由でインストールしたときにどれだけビルド時間が伸びるかなど紹介してきました。
弊社ではプロジェクトごとにじわじわとJenkinsからBitriseへの移行がおこなわれていましたが、現時点で完全にBitriseへの移行が完了しています。関係者が多いプロジェクトだとProvisioning Profile(プロビジョニングプロファイル)の更新が頻繁に発生して、更新処理が大変だったので随分と負荷が下がりました。Jenkinsおじさんは引退です。
もしBitriseを使ってみたい方がいれば↓のリンク経由でアカウントを作っていただければ、ビルド時間が5分伸びるみたいです!
iOSアプリのdSYMファイルがBitriseからFirebase Crashlyticsへ送信できていない
個人で開発しているアプリのクラッシュ情報はFirebase Crashlyticsに送るようにしています。久しぶりにFirebase Consoleにアクセスしたところ、ここしばらくdSYMファイルがFirebase Crashlyticsへ送信できていないことがわかりました。
不足している必須のdSYMをアップロードしてください と怒られていました。これはいけない。
Xcodeでリリースバイナリを作成する際(ビルドフェーズ)にdSYMファイルを送信するようにしていましたが、Xcode 12対応を入れたあたりから送信できてなかったようです。
if [ $CONFIGURATION = "Release" ]; then "$SRCROOT/bin/FirebaseCrashlytics/run" fi
アーカイブ後に直接 upload-symbols を実行してアップロードする
xcode-archiveステップのあとであれば、dSYMファイルに $BITRISE_DSYM_PATH
でアクセスすることができます。直接 upload-symbols
を実行して dSYMファイルをアップロードすることにしました。
- xcode-archive@2.8: inputs: - project_path: "$BITRISE_PROJECT_PATH" - scheme: ptcgnote - export_method: app-store - script@1.1.6: title: Firebase Crashlytics inputs: - content: |- #!/usr/bin/env bash chmod +x ptcgnote/bin/FirebaseCrashlytics/run chmod +x ptcgnote/bin/FirebaseCrashlytics/upload-symbols ptcgnote/bin/FirebaseCrashlytics/upload-symbols -gsp ptcgnote/ptcgnote/Resource/GoogleService-Info.plist -p ios $BITRISE_DSYM_PATH - deploy-to-itunesconnect-application-loader@0.11: inputs: - password: "$APPLE_PASSWORD" - itunescon_user: "$APPLE_ID"
upload-symbols
のパスが Pods/FirebaseCrashlytics/upload-symbols
でないのは、Firebase iOS SDKをCarthage経由でインストールしているからです。CocoaPods経由でインストールしている方は適宜パスを読み替えていただければと思います。
あとは追加したscriptステップが下図のようにうまく動くのを確認すれば、対応は完了です。
おわり。