CIスクリプトディレクトリの作成
Xcodeのプロジェクトナビゲータでプロジェクトを選択し、下部にあるプラスボタンをクリックしてから、New Groupを選択します。
ci_scripts
というフォルダー名を入力します。
(プロジェクトファイルまたはワークスペースと同じレベルに配置します。)
カスタムビルドスクリプトを用意
カスタムスクリプト | タイミング |
---|---|
ci_pre_xcodebuild.sh | XcodeCloudがxcodebuildコマンドを実行する前に実行されます。 |
※カスタムスクリプトの対応するファイルの名前によって、XcodeCloudがスクリプトを実行するタイミングが決まります。
アイコンセットを用意
ci_pre_xcodebuild.sh(カスタムビルドスクリプト)を作成
ci_pre_xcodebuild.sh
#!/bin/sh
# ci_pre_xcodebuild.sh
# BookLiveReader
#
# Created by 佐野貴信 on 2022/06/28.
#
if [[ $CI_XCODE_SCHEME = "AdHoc" && $CI_XCODEBUILD_ACTION = 'archive' ]]; then
echo "AdHocアプリアイコンを設定"
# アプリアイコンのパス
APP_ICON_PATH=$CI_WORKSPACE/Resources/Images.xcassets/AppIcon.appiconset
# アプリアイコンを削除
rm -rf $APP_ICON_PATH
# AdHocアプリアイコンのパス
ADHOC_ICON_PATH=$CI_WORKSPACE/ci_scripts/AppIcon-AdHoc.appiconset
# AdHocアプリアイコンに差し替える
mv $ADHOC_ICON_PATH $APP_ICON_PATH
fi
TestFlightに配布されるビルドにのみ、アイコンの差し替えを実行したいと思います。
Xcode CloudがビルドをTestFlightに配布するときは常に、プロジェクトのアーカイブを最初にビルドするため、
CI_XCODEBUILD_ACTIONが「archive」であるかどうかを確認することで判断できます。
シェルスクリプトを実行可能にする
ターミナルから、chmodコマンドを実行してシェルスクリプトを実行可能にします
chmod +x ci_pre_xcodebuild.sh
環境変数リファレンス
https://developer.apple.com/documentation/xcode/environment-variable-reference
CI_XCODE_SCHEME(ワークフローのアクションで指定したスキームを特定するのに使用)
CI_XCODEBUILD_ACTION(実行中のアーカイブアクションを特定するのに使用)
CI_WORKSPACE(CIビルド環境でのプロジェクトのソースコードの場所)