GoogleService-Info.plist ←曲者すぎん?
みなさんGoogleService-Info.plistってGitHubにアップロードしないと思うんですけど(安全性の観点から)、これだとXcode CloudでFirebaseのプロジェクトを実行できないわけですよ。
困ったな〜〜🤔
👮♀️「解決します」
環境変数を設定する
AppStoreConnectの「Xcode Cloud」のタブを開きます
「ワークフローの管理」から、使用しているワークフローを選択します(今回は「Default」)
「環境」タブの「環境変数」の、「編集」ボタンを押します
「名前」をわかりやすい名前に設定します(例:GOOGLE_SERVICE_INFO)
「値」の方にはGoogleService-Info.plistの中身をそのまま丸ごとコピペします
コピペの方法:GoogleService-Info.plistをお好きなエディタで開いてもらって、中身をそのままコピー・ペーストします。
シークレットにチェックを入れて、完了を押します
その後、画面右上の保存ボタンを押して(←←忘れがち)、環境変数の設定は完了です
Xcode Cloud上で実行するためのShellScriptを用意する
環境変数からGoogleService-Info.plistを生成するShellScriptを用意します
ファイルやディレクトリの位置や名前が重要なので、気をつけてください
.xcodeproj直下に「ci_scripts」という名前のフォルダを作成します
.xcodeprojを右クリック、「New Group」を選択
作成したフォルダを右クリック、「New File...」を選択
「ci_pre_xcodebuild.sh」という名前でファイルを作成します
この時、Targetsに何も選択しないように注意してください
環境変数をもとにGoogleService-Info.plistを生成するコードを書きます
#!/bin/sh
も忘れずに記入しましょう
#!/bin/sh
echo $GOOGLE_SERVICE_INFO > ../ここにプロジェクトの名前/GoogleService-Info.plist
次に、このファイルの権限を変更します
ターミナルでプロジェクトファイルのディレクトリまで移動し、次のコマンドを実行します
chmod +x ci_pre_xcodebuild.sh
あとはこの変更をGitHubにpushして、Xcode Cloudを動かしましょう!うまくいけばうまくいくはず🤔
参考:https://developer.apple.com/documentation/xcode/xcode-cloud-workflow-reference#Custom-environment-variables
参考:https://developer.apple.com/documentation/xcode/writing-custom-build-scripts