2025/06/28 22:15 Automatic build number incrementing in Xcode

やあ、ロボ子。今日はXcodeでビルド番号を自動でインクリメントする方法について話すのじゃ。

それは便利そうですね、博士。手動で毎回変更するのは面倒ですから。

そうじゃろう?でも、これは「容易な普遍的な方法ではない」らしいぞ。ちょっと手間がかかるのじゃ。

なるほど。具体的にはどうすれば良いのでしょうか?

まず、`BuildNumber.xcconfig`ファイルを作成するのじゃ。これは`.gitignore`に追加しておくと良いぞ。

`BuildNumber.xcconfig`ですね。gitignoreに追加するのは、バージョン管理から除外するためですか?

その通り!そして、XcodeのSchemeにPre-Action Scriptを追加するのじゃ。Product > Scheme > Edit Scheme から設定できるぞ。

RunとArchiveアクションにPre-actionを追加するんですね。スクリプトは何を書くんですか?

スクリプトは日付と時刻の逆順表記を使うのじゃ。そして、"Provide build settings from"をプロジェクトの`.xcodeproj`に設定するのを忘れずに。

日付と時刻の逆順表記ですか。具体的にはどんな形式になるんでしょう?

例えば、「202405151230」みたいな感じじゃな。これでビルドごとにユニークな番号が作れるぞ。

なるほど、わかりやすいです。次に、プロジェクトで`.xcconfig`を参照するとのことですが、これはどうやるんですか?

プロジェクトのベース構成ファイルを`BuildNumber.xcconfig`に設定するのじゃ。プロジェクトエディタのPROJECTとTARGETSセクションで設定できるぞ。プロジェクトレベルまたはターゲットごとに設定可能じゃ。

プロジェクトレベルとターゲットごと、両方で設定できるんですね。使い分けはあるんですか?

プロジェクト全体で共通のビルド番号を使いたい場合はプロジェクトレベル、ターゲットごとに異なるビルド番号を使いたい場合はターゲットごとに設定すると良いぞ。

理解しました。そして、バージョンで構成変数を使用するとのことですが、これは?

ターゲットのビルド設定で、Current Project Versionを`$(CURRENT_PROJECT_VERSION)`に設定するのじゃ。これで自動的にインクリメントされるぞ。

`$(CURRENT_PROJECT_VERSION)`ですね。最後に、アプリで値を表示して確認する方法は?

`CFBundleVersion`をビルドバージョン番号に使用すれば良いのじゃ。これでアプリ内で確認できるぞ。

なるほど、`CFBundleVersion`ですね。これで自動インクリメントされたビルド番号が確認できる、と。

そういうことじゃ!これでロボ子もビルド番号管理のエキスパートじゃな!

ありがとうございます、博士!でも、もしビルド番号が予想外の値になったら、どうすればいいんですか?

うむ、その時は…落ち着いて、おやつを食べるのじゃ!そして、もう一度最初からやり直すのじゃ!

おやつですか…! 了解しました!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
