`bundle exec pod install`経由しか`pod install`ができないようにする

Wednesday, October 24, 2018

チーム開発を行っていると、Cocoapodsのライブラリ管理をするときに、bundlerを使ってpodのバージョンをチームで揃えて実行できるようにすることが多いのですが、
ついつい pod install って打ってしまう事、ありますよね。
それを防止する方法を書き記しておきます。

Podfileを開いて、一番最初のところに、以下の記述を追加します。

# --- これを追加
using_bundler = defined? Bundler
unless using_bundler
  puts "\nPlease re-run using:".red
  puts " $ bundle exec pod install\n\n"
  exit(1)
end
# --- 追加ここまで

source 'https://github.com/CocoaPods/Specs'

platform :ios, '11'
inhibit_all_warnings!

use_frameworks!

target 'App' do
  pod 'xxx'
end

実行時にbundlerを使っているかを判断して、bundlerで入れたpod経由でなく直接実行しようとしている場合にエラーを出して止めてくれます。
これで pod install を実行すると、

$ pod install

Please re-run using:
 $ bundle exec pod install


[!] Invalid `Podfile` file: exit.

 #  from path/to/project/Podfile:5
 #  -------------------------------------------
 #    puts " $ bundle exec pod install\n\n"
 >    exit(0)
 #  end
 #  -------------------------------------------

と出力されて実行が失敗に終わります。bundle exec pod install をしてあげることで、インストールすることが可能になります

参考

たまたま調べ物をしているついでに気づいたのでtipsとして。

TechSwiftiOSCocoaPodstips

jestのwatch中でもconsole.logを表示させる

当日スタッフからみたiOSDC2018