2018/01/21 .swiftlint.ymlの記載内容を更新しました。

こんばんは。shiguです。

先日ちびめも。のv1.1.0をリリースしたばかりですが、
次のv1.2.0を出す前にやっておきたいと思い「Swift Lint」を入れてみました。

Swift LintはSwiftの静的解析ツールで、
「コーディングがイケてないところをビルド時に教えてあげるよ!」というものです。
モバイルデータベースで有名なRealm社が作っています。
(ちなみに、ちびめも。でもRealmを使っています)

github.com

超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

f:id:shigu493:20171123200716p:plain

これでインストールと設定は完了です。
この状態でシミュレータ(実機でも可)で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

qiita.com



とりあえず例外設定をしてもまだ大変な状態なので、今日はその修正に努めたいと思います…。

手帳好き女子の皆様、ぜひご利用ください♪

スポンサーリンク