CocoaPodsでSwiftLintを導入する
はじめに
コードの量が大きくなる前にSwiftLintを導入しようと思ったので、その時の導入の記録
環境
Xcode9.2
Swift4
cocoaPods 1.2.0
podfileの編集
vi podfile
Podfileの中身の例
vi podfile
これはプロジェクトネームがTodolist-firebaseなので5行目がこのようになっていますが、自分の作ったプロジェクトネームをここに入れて下さい
#Uncomment the next line to define a global platform for your project
platform :ios, '10.0'
target 'Todolist-firebase' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'SwiftLint'
end
podでライブラリをインストール
podfileを参照して、その中に入ってるライブラリを含めてxcworkspaceを作ります
$pod install
プロジェクトファイルを開く
cocoaPodsを使う場合は.xcodeprojと間違えないように注意
$open (プロジェクトネーム).xcworkspace
例
$open Todolist-firebase.xcworkspace
Xcode内の設定
cocoaPods導入時の注意点
下の図のようにRunScriptの項目を開き、黒いウィンドウに下記を記入するのですがcocoaPodsの場合は内容が少し違います
公式ドキュメントのXcodeの項目によると
赤枠で囲われているところに着目すると,このように書き換える必要があることがわかります。
if which "${PODS_ROOT}/SwiftLint/swiftlint" >/dev/null; then
${PODS_ROOT}/SwiftLint/swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
とりあえず走らせてみる
⌘+Bで実行できる
AppDelegateのファイル内のコメントアウトのところですらエラーが出てくるようになってしまった
いろんなライブラリを入れていたためか、エラーが出てくるように
SwiftLintを走らせないようにするファイルや細かいルールの設定をする
.swiftLint.yml
ファイル内に細かいルールを設定するとエラーを吐かないようになるとのことです
disabled_rules:デフォルトの有効なセットからルールを無効にします。
opt_in_rules:デフォルトのセットからルールを有効にします。
whitelist_rules:ホワイトリストとして動作し、このリストで指定されたルールだけが有効になります。 disabled_rulesまたはopt_in_rulesと一緒に指定することはできません。
とりあえず、今回は一行あたりの文字数制限とpodで入れたライブラリたちが引っかからないようにしたいので .swiftLint.yml
を編集します
$vi .swiftLint.yml
下記の参考文献から例をお借りしました
# 実行から除外するルール
disabled_rules:
# テストコード、Pod等のライブラリは対象外
excluded:
- Pods/
- Podfile
- Podfile.lock
# 1行あたりの文字数制限
line_length: 300
再び実行しました
⌘+Bで実行し赤色のエラーが出ないようになりました。
行末に空白があるという警句や
Trailing Whitespace Violation: Lines should not have trailing whitespace. (trailing_whitespace)
関数の長さが長すぎという警告
Function Body Length Violation: Function body should span 40 lines or less excluding comments and whitespace: currently spans 49 lines (function_body_length)
きれいなSwiftを書くことを意識できますね
参考文献
公式ドキュメント
【SwiftLint】CocoaPodsでSwiftLintを導入する
Swiftの静的解析を行うためにSwiftLintをインストールしてみた
swiftlint 最新版(0.18.1) の設定ファイル(.swiftlint.yml)のサンプル
Author And Source
この問題について(CocoaPodsでSwiftLintを導入する), 我々は、より多くの情報をここで見つけました https://qiita.com/nakagawa1017/items/963ee4d003c907e0a022著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .