2012/04/07

GData API(youtube api)ライブラリを追加する

gdata objecttive-c client setup in XCode4

目的

xcodeプロジェクトにgdata-objectivec-clientのライブラリを設定する

準備

  1. gdata-objectivec-client のチェックアウト
  2. xcodeプロジェクトを作成

1. gdata-objectivec-client のチェックアウト

以下のように,svnでgoogle codeからtrunkをチェックアウトする
    svn checkout http://gdata-objectivec-client.googlecode.com/svn/trunk gdata-objc-client
以下のようなエラーが発生し,json-framework(objcでjsonを扱うためのフレームワーク)が取得できないが,無視してすすめる.
Authentication realm: <http://json-framework.googlecode.com:80> Google Code Subversion Repository
Password for 'uesrname': 
Authentication realm: <http://json-framework.googlecode.com:80> Google Code Subversion Repository
Username: 
Password for '': 
svn: warning: Error handling externals definition for 'gdata-objc-client/Source/JSON':
svn: warning: OPTIONS of 'http://json-framework.googlecode.com/svn/tags/2.1.1/Source': authorization failed: Could not authenticate to server: rejected Basic challenge (http://json-framework.googlecode.com)
これは,SBJson(旧json-framework)が既にgoogle-code上にないため発生します.githubに数年前に移行済みのようです.gdata-objc-clientでも最新は必要ないが,互換性のためになんとかかんとか,ということで参照リポジトリとして指定されているようです.このへん参照
本日(2012/04/07),再度チェックアウトを試みたところ,SBJSONの参照先がgithubに修正されていました.困ってた方は,’svn update’をお試しください.(よくわかりませんが,初回のcheckoutは失敗しました)

作成

適当なiOS用プロジェクトを作っておいてください.

ライブラリ組込み手順

  1. Finderから,先ほどチェックアウトした GData.xcodeproj をドラッグ・アンド・ドロップで既存のXCodeプロジェクトのツリーに追加します.
  2. 新しい依存するターゲットを追加
    ターゲットを選択 → Build Phases → Target Dependenciess → +ボタン

  3. GDataTouchStaticLib を追加
  4. “Link Binary With Libraries”にワークスペース欄の libGDataTouchStaticLib.aライブラリを追加します.

    赤くなりますが,ビルドしていないのでファイルがまだ存在しないためです.
  5. 同じく“Link Binary With Libraries”に次のフレームワークを追加します.
    • Security.framework
    • SystemConfiguration.framework
  6. ビルド設定で “Other Linker Flags”に次の設定を追加:
    • -ObjC
    • -lxml2
    • -all_load
    フラグを追加
  7. 同じくビルド設定で /usr/include/libxml2 を“Header Search Paths”に追加します.
  8. 使わないAPIを除外します:
    例えば,Youtube APIだけを使う場合は,プロジェクト内のGDataプロジェクトクロスリファレンスを選び,ターゲットのGDataTouchStaticLibを選択して“Other C Flags”のDebug と Release の両方に2つの設定を追加します:
    • -DGDATA_REQUIRE_SERVICE_INCLUDES=1
    • -DGDATA_INCLUDE_CALENDAR_SERVICE=1
  9. プロジェクトをビルド
  10. オーガナイザーを開き,ProjectsカテゴリのGDataから,Derived dataの三角形を押してFinderを開きます.
  11. その中のiphonesimulatorのHeadersフォルダをドラッグ・アンド・ドロップでプロジェクトに追加します.単にリンクだけでOK.コピーしなくても良いらしいです.
  12. あとは,#import “GData.h”で書こう.

References

GData Objective-C Client Setup in XCode 4