gdata-objectivec-clientを一部手動でstatic library化

gdata-objectivec-clientを使ってGoogleのサービスを使うアプリを作っていたのですが、しばらく、entryからXMLを抜き出しただけで、時折落ちるという原因がまったくわからない現象が発生して、しばらく困っていて、もうどうしようもないと思って、バージョンアップしたら直ってました。。。

ということで、gdata-objectivec-clientを一部手動でstatic library化する方法をまとめておきます。おかしいところがありましたら、教えてください。

  • 最新のソースをもらってくる

http://code.google.com/p/gdata-objectivec-client/

http://code.google.com/p/gdata-objectivec-client/wiki/BuildingTheLibrary

  • 展開して、GData.xcodeprojを立ち上げる
    • アクティブターゲットをGDataTouchStaticLibにする
      • iPhoneOSを3.1.3にして、simulatorでビルド
      • iPhoneOSを3.1.3にして、実機でビルド
  • コンパイルすると、 libGDataTouchStaticLibができる(Product)に
  • 実機、シミュレータの療法で使えるstaticなライブラリを作成する

参考: http://blog.boreal-kiss.com/2009/08/29000009.html

このままだと実機とシミュレータで別々のライブラリが出来上がってしまうので、
簡略化するために、ライブラリをひとつにまとめる。

% cd Source/build
% lipo -create Debug-iphoneos/libGDataTouchStaticLib.a Debug-iphonesimulator/libGDataTouchStaticLib.a -output libGDataTouchStaticLib_com.a 
  • できたlibGDataTouchStaticLib_com.aをプロジェクトのFrameworksのところに突っ込む。
  • Source/build/Debug-iphoneos/Headers以下をすべて自分のプロジェクトにコピーする。
  • あと、libxml2のリンク準備もしておく必要があります。