はまったのでメモ
環境
- Google Maps SDK for iOS 1.6.1
- Xcode ver5.0
症状
- 自分のプロジェクトを他の人に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
参考
- Google Maps SDK for iOS — Google Developers
- <GoogleMaps/GoogleMaps.h> file not found Google Maps SDK for iOS - Stack Overflow
- iphone - Framework not found GoogleMaps sdk in iOS - Stack Overflow
- Google Maps SDK for iOSのframeworkがプロジェクトに追加できない
自分の環境では動くんですけどータイプのエラーは面倒という典型例だった・・・。