LoginSignup
2
1

More than 1 year has passed since last update.

Xcode Cloudのカスタムスクリプトを使用し、特定のスキームでアイコンを差し替える

Last updated at Posted at 2022-06-30

CIスクリプトディレクトリの作成

Xcodeのプロジェクトナビゲータでプロジェクトを選択し、下部にあるプラスボタンをクリックしてから、New Groupを選択します。
ci_scriptsというフォルダー名を入力します。
(プロジェクトファイルまたはワークスペースと同じレベルに配置します。)

カスタムビルドスクリプトを用意

カスタムスクリプト タイミング
ci_pre_xcodebuild.sh XcodeCloudがxcodebuildコマンドを実行する前に実行されます。

※カスタムスクリプトの対応するファイルの名前によって、XcodeCloudがスクリプトを実行するタイミングが決まります。

アイコンセットを用意

アイコンセットをci_scriptsフォルダに格納する
Screenshot 2022-06-30 at 15.56.37.png

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ビルド環境でのプロジェクトのソースコードの場所)

参考

WWDC21: Customize your advanced Xcode Cloud workflows.

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1