gdata-objectivec-clientを静的ライブラリとして組み込むには
Google Data APIに簡単にアクセスできるgdata-objectivec-clientライブラリの組み込み方法。次回やるときに確実に忘れてそうなのでメモ。
入れ方は色々あるのですが、今回はBuildingTheLibraryという公式のwikiに記載されているLinking to the iPhone Static Libraryを参考に、静的ライブラリとして利用します。
gdata-clientをビルド
1. 現在の最新版は、gdata-objectivec-client-1.10.0なのですがビルドすると、GDataGatherInputStreamが実装されてないよ、と言われて失敗するので、svnから取ってきて、プロジェクトのディレクトリに入れます。
svn co http://gdata-objectivec-client.googlecode.com/svn/trunk gdata-client mv gdata-client Project
2. GData.xcodeprojを開いて、ビルドターゲットを GDataTouchStaticLib に変更します。
3. ターゲット > GDataTouchStaticLibの情報を見る > ビルド > 構成:Release の設定を変更します。
- 「ベースSDK」を iOS4.1 にする
- その他のCフラグに設定されてある「-DGDATA_INCLUDE_nameServiceHere_SERVICE=1」を「-DGDATA_INCLUDE_PHOTOS_SERVICE=1」にする
- 旧世代の端末もサポートする場合は、アーキテクチャを「Standard(armv6 armv7)」にする
今回はPicasaAPIを使うのでPHOTOSを指定していますが、それ以外のAPIを利用したい場合は、それぞれ指定します。ここで指定しなかったソースはビルド対象になりません。
4. Simulator, DeviceそれぞれReleaseビルドします。
5. 出力されたライブラリを統合します。
cd Project/gdata-client/Source/build lipo -create Release-iphoneos/libGDataTouchStaticLib.a Release-iphonesimulator/libGDataTouchStaticLib.a -output libGDataTouchStaticLib.a
これでSimulator, Device両方で利用できるライブラリができました。
プロジェクトに組み込み
1. Projectプロジェクトを開き、既存のファイルを追加から上記のlibGDataTouchStaticLib.aを追加します。
2. 情報を見る > ビルドで、全ての構成の設定を変更します。
- 他のリンカフラグに -ObjC -lxml2 を追加
- ヘッダ検索パスに下記パスを追加
/usr/include/libxml2 (再帰的にチェック) $(SRCROOT)/gdata-client/Source/build/Release-$(PLATFORM_NAME)/Headers
3. 適当なファイルに #import "GData.h" を追加して、ビルドが通ればOKです。