リポジトリのswiftlintのバージョンを固定したい時に。
Carthageはバイナリの配布をサポートしていないのでCocoaPodsで管理する。
が、他のライブラリをCarthageで管理している場合、バイナリを利用するためだけにxcworkspaceを使うのは気持ちよくないのでオプションを探してみた。
CocoaPods/CocoaPods
ドキュメントにはxcworkspaceを作らないようにするオプションについての記述が見当たらなかったため、ソースコードを読むことにした。(見落としていただけかも)
どうやら、integrate_targetsをfalseにすればcreate_workspaceが実行されないようだ。
試しに以下のPodfileで試したところ、Podsディレクトリのみが作成された。xcworkspaceの無い綺麗な世界の完成 ![]()
Podfile
platform :ios, '11.0'
install! 'cocoapods', :integrate_targets => false
target 'App' do
pod 'SwiftLint'
end
注意点
integrate_targetsをfalseにすると、$PODS_ROOTなどの環境変数は使えなくなる。
そのため、$PODS_ROOT を ${SRC_ROOT}/Podsに置き換える必要がある。