LCLの開発者ブログ2018-08-28xcprojectlintでXcodeの些細な問題を解決して心を整えるモバイルアプリエンジニアの山下です。Xcodeで開発を進めていく中で、以下のような小さな問題がずっと気になっていました。用いて問題箇所の検出をしてみました。Managerに対応しています。ManagerはCocoaPodsやCarthageと比べて実行するために複数の引数を用いたり少し面倒な部分があったりするので、それを隠したMakefileを用意してくれています。./.build/x86_64-apple-macosx10.10/debug/xcprojectlint出力されたPathにxcprojectlintが設置されているのでコマンドを叩きます。0.0.3無事に実行できればインストールは完了です。以下のように実行することでLintを実行することができます。../xxxx.xcproject--reportwarningとerrorのどちらで出力するかを指定します。--validationsチェックしたいvalidationsを指定します。5つのルールと、全てを適用するためのallを含めた6つのバリデーションが用意されています。validations--projectxcprojectのPathを指定します。今回はxcprojectlintを開発ディレクトリ直下に配置しているため、1階層分戻って指定しています。--skip-folders除外したいフォルダを指定します。swiftlintやswiftformat同様にビルド時に実行し、Xcode上で警告やエラーを表示させたいと思います。Scriptを追加します。次に以下のスクリプトを入力します。https://github.com/americanexpress/xcprojectlint"fi設定は以上です。先程とは違い、Pathの指定はプロジェクトルートから設定していることに注意してください。Lintの結果build-settings-externalized以外のバリデーションを実行してみた結果、合計で74件引っかかりました。Nameから並び替えが可能です。Typeで再度ソートするとよいです。各エラー内容は具体的にちゃんと出力されているため、その通りに直していけば健康的なプロジェクト環境を維持できそうです。おわりにずっと気になっていたことを解決できたので、気持ちよく開発を進めることができそうです。長期的な開発では些細なことでも塵積で混沌とした開発環境になってしまい兼ねないので、可能な限り機械的に検出し快適な開発環境を維持できるようにしたいと思っています。いえ、このようなチェックはIDE側で補って欲しいところですね。