2018/01/21 .swiftlint.ymlの記載内容を更新しました。
こんばんは。shiguです。
先日ちびめも。のv1.1.0をリリースしたばかりですが、
次のv1.2.0を出す前にやっておきたいと思い「Swift Lint」を入れてみました。
Swift LintはSwiftの静的解析ツールで、
「コーディングがイケてないところをビルド時に教えてあげるよ!」というものです。
モバイルデータベースで有名なRealm社が作っています。
(ちなみに、ちびめも。でもRealmを使っています)
超Swift初心者なので導入に日和っていたのですが、
やるなら今だと一念発起してインストールに踏み切りました。
まずは、Homebrewを使ってインストールです。
HomebrewはHerokuを使用した時にインストール済みでした。
$ brew install swiftlint Updating Homebrew... ==> Auto-updated Homebrew! Updated 2 taps (heroku/brew, homebrew/core). ==> New Formulae asciidoctor htslib ocaml-num csvkit jabba pipenv docker-ls just rbenv-chefdk dps8m kaitai-struct-compiler restic e2tools keystone simg2img elasticsearch@5.6 kibana@5.6 singular go-jira libxo terraform_landscape gutenberg logstash@5.6 ydcv heartbeat ocaml-findlib zip ==> Updated Formulae heroku ✔ libxml2 heroku/brew/heroku ✔ libxslt heroku/brew/heroku-node ✔ lighttpd icu4c ✔ link-grammar node ✔ linkerd openssl ✔ liquid-dsp (中略) libwpg zurl ==> Renamed Formulae findbugs -> spotbugs newsbeuter -> newsboat ==> Deleted Formulae libical-glib Error: Xcode alone is not sufficient on Sierra. Install the Command Line Tools: xcode-select --install
エラーです。
よくよく読んでみると、XCodeのコマンドラインツールがインストールされていないとのことです。
こちらのコマンドでインストールします。
$ xcode-select --install xcode-select: note: install requested for command line developer tools
そしてもう一度Swift LIntのインストールを実施すると…
$ brew install swiftlint ==> Downloading https://homebrew.bintray.com/bottles/swiftlint-0.24.0.sierra.bot ######################################################################## 100.0% ==> Pouring swiftlint-0.24.0.sierra.bottle.tar.gz 🍺 /usr/local/Cellar/swiftlint/0.24.0: 35 files, 15.4MB
成功しました!
これだけでインストールは完了です♪
続いてXcodeを開き、xcodeprojのBuild PhasesにRun Scriptsを追加し、下記のスクリプトを記載します。
ビルド時にSwift Lint(静的解析)を実行しますよという意味です。
if which swiftlint >/dev/null; then swiftlint else echo "SwiftLint does not exist, download from https://github.com/realm/SwiftLint" fi
これでインストールと設定は完了です。
この状態でシミュレータ(実機でも可)でCmd + R
を実行してビルドしてみると…
大変なことになります。笑
よほどコーディングが上手な人でない限り、Build Failedになると思います…
ここからソースコードを修正していくのかと思ったのですが、
ある程度は自分で「例外設定」が必要になるようです。
XCodeのプロジェクトの直下に「.swiftlint.yml」というファイルを自分で作成します。
XCodeからだと失敗してしまうので、Finderから。
中に書く例外設定は私もまだどの程度書くべきかわからないので公開は控えますが、
この辺はマストだと思います。
# 1行あたりの文字数制限を300に変更 # プロジェクト作成時のデフォルトコメントを除外するため line_length: 300 # 追加したOSSライブラリは含めない excluded: - Pods/ - Carthage/ # 無効にするルール disabled_rules: - trailing_whitespace # 空行を許可 - force_try # try!を許可 - force_cast # as!を許可 - type_name # TEST_STRやabcなどの変数名を許可
下記を参考に、これから調整していく予定です。
qiita.com
とりあえず例外設定をしてもまだ大変な状態なので、今日はその修正に努めたいと思います…。
手帳好き女子の皆様、ぜひご利用ください♪