LoginSignup
6
6

More than 5 years have passed since last update.

SwiftGen等のBuild Phaseで生成される値を用いる際、毎回Buildを先に通しておくのが面倒な時

Last updated at Posted at 2016-02-09

最近、iOSアプリの実装でリソースをタイプセーフに扱いたいという理由でSwiftGenを導入しました

SwiftGenについて

ざっくり説明すると

  • Assets Catalogs
  • Localizable.strings
  • storyboard
  • UIColor

などのリソースを自動でenumへ変換し、利用時に補完してくれたり誤字を防いでくれたりするものです

XcodeのBuild Phasesに変換用のScriptを追加しておけば、ビルド時に毎回指定のリソースを読み取り、enumを記述したファイルを自動生成してくれるというスグレモノです

Buildされないとenumが使えない

Build Phasesに書いたScriptは、書いたコードのBuildが通った後に実行されます

つまり

コーディング中 書いたコードのBuildがSuccess Build PhasesのScript実行
enumを使えない enum生成

という状態になります

一度自動生成の値を使わないコードを書き、Buildを通してから初めて使えるようになる為、二度手間になります

BuildがFailedしてもBuild PhasesのScriptを実行

毎回
「Buildが通る状態にしてからBuildし、Build PhasesのScriptを実行させることでenumを生成」
なんてことをするのは面倒です

そこで、Xcodeの設定を使い、Buildが途中でFailedしても最後まで実行してくれるようにします

  1. XcodeのPreferencesから
    スクリーンショット_0028-02-09_14_36_29.png

  2. GeneralのIssuesにあるContinue building after errorsにチェックを入れるだけです!
    スクリーンショット_0028-02-09_14_36_45.png

以上で、エラーがあっても強制的にBuildを継続し、Scriptを実行することでenum等の値を生成することができるようになりました

6
6
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
6
6