Google Maps SDKでfile not foundエラーがでて辛かった話

はまったのでメモ

環境

症状

  • 自分のプロジェクトを他の人にpullしてもらうとフレームワークが見つからないと言われてビルドできない。 具体的には下記エラーが出る。
#import <GoogleMaps/GoogleMaps.h> //file not found
  • 一方で自分の手元では正常に動作する

原因

公式インストール手順に沿うと自動的に設定されるframework search pathがよろしくなかった。

本来は.xcodeprojファイルがあるディレクトリへのパスを指す$(SRCROOT)が設定されるべきだが、 /Users/<hoge>/FooProject/GoogleMaps.frameworkのように何故か展開された絶対パスが記述されてしまう

絶対パスでも自分の環境では正常動作するけど、ユーザーが違うとユーザー名も違うので他の人がビルドしようとしてもフレームワークが見つからないと怒られる。

対処方法

framework search pathという設定項目はXcode上でTarget → Build Setting → Search Pathsと進んだところにあるので、 絶対パスで書いてある設定を消して、$(SRCROOT)とか$(SRCROOT)/Vendorとかに書き換えればOK

参考

自分の環境では動くんですけどータイプのエラーは面倒という典型例だった・・・。