R.swiftとWARNで競合したので解消した
WARNの説明
Obj-C時代は、#warning
を書いて意図的に警告を表示し、後から対応する等のメモがわりに使用していた。(他にそういう人は多いはず)
で、これがSwiftになると使えないので、// WARN:
を書いたら同じように警告を表示するようにRun Scriptを入れるわけです。
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/"