workspaceを作らずにSwiftLintをCocoaPodsで管理する


リポジトリのswiftlintのバージョンを固定したい時に。

Carthageはバイナリの配布をサポートしていないのでCocoaPodsで管理する。
が、他のライブラリをCarthageで管理している場合、バイナリを利用するためだけにxcworkspaceを使うのは気持ちよくないのでオプションを探してみた。

CocoaPods/CocoaPods

ドキュメントにはxcworkspaceを作らないようにするオプションについての記述が見当たらなかったため、ソースコードを読むことにした。(見落としていただけかも)

どうやら、integrate_targetsfalseにすればcreate_workspaceが実行されないようだ。
試しに以下のPodfileで試したところ、Podsディレクトリのみが作成された。xcworkspaceの無い綺麗な世界の完成

Podfile
platform :ios, '11.0'

install! 'cocoapods', :integrate_targets => false
target 'App' do
  pod 'SwiftLint'
end

注意点

integrate_targetsfalseにすると、$PODS_ROOTなどの環境変数は使えなくなる。
そのため、$PODS_ROOT${SRC_ROOT}/Podsに置き換える必要がある。