面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

R.swiftとWARNで競合したので解消した

WARNの説明

Obj-C時代は、#warningを書いて意図的に警告を表示し、後から対応する等のメモがわりに使用していた。(他にそういう人は多いはず)

で、これがSwiftになると使えないので、// WARN:を書いたら同じように警告を表示するようにRun Scriptを入れるわけです。

qiita.com

R.swiftとWARNの競合

便利なR.swiftを利用している人もそれなりにいると思う。

そこで、先ほどの// WARN:のRun Scriptを入れてやったら、自分の環境で競合してerrorがでた。

競合の理由としては、R.swiftが生成するSwiftファイル格納用に作成したフォルダ名R.swiftが、WARNの警告検索対象である*.swiftにひっかかったため。

下記のように除外項目-not -name "R.swift"を入れてやり解消してやった。

KEYWORDS="WARN:"
find ${SRCROOT} \( -name "*.h" -or -name "*.m" -or -name "*.swift" -not -name "R.swift" \) -print0 | \
xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | \
perl -p -e "s/($KEYWORDS)/ warning: \$1/"