🍁

Swift: リリース版でのみ処理を行う

2020/10/08に公開
#if DEBUG
// デバッグ版でのみ行いたい処理
#endif

#if DEBUG
// デバッグ版でのみ行いたい処理
#else
// デバッグ版以外(つまりリリース版)で行いたい処理
#endif

のように#if DEBUGを使うとデバッグ版でのみ処理を行うことができるのはそこそこ有名ですが、リリース版のみ処理を行いときにわざわざ#elseを使うのはアホらしいですよね。これ、PROJECT -> Build Settings -> Swift Compiler - Custom FlagsActive Compilation Conditionsに設定を追加するだけでリリース版用のフラグを作れます。

Xcode 7以前はBuild SettingsOther Swift Flags-D DEBUGとかフラグを追加するという方法しかなかったようなのですが、Xcode 8以降からはActive Compilation Conditionsが追加され、しかもデフォルトでデバッグ用のフラグが設定されていたようです。(最近まで知らずに、ずっとOther Swift Flagsを使っていました。)

ということで、フラグさえ追加してしまえば、

#if RELEASE
// リリース版でのみ行いたい処理
#endif

という風に処理を分けて書くことができますね。

ちなみに、リリース版で実行をするのは、Edit Scheme -> Run -> Info - Build ConfigurationReleaseを選択すればOKですね。

Discussion