xcode4.2+iPhone iOS5でGoogleCalendarのデータを読み込む【準備編】

iPhoneからGoogleCalendarのデータを読み込む手順はこんな感じ

  1. Googleから「gdata-objectivec-client」のファイルを取得
  2. プロジェクトを作成し、「gdata-objectivec-client」のファイルを加え、ビルドできる様にする
  3. GoogleCalendarにアクセスするコードを書く

1.gdata-objectivec-clientのファイルを取得

まずは以下のページでGoogleが公開している、objective-c用のファイルを取得する。

gdata-objectivec-client - Google Data APIs Objective-C Client Library - Google Project Hosting

英語で書かれているが、要はGoogleが提供するobjective-cでのGoogleCalendarへのアクセス用ソースコードを公開している。

Source Checkout - gdata-objectivec-client - Google Data APIs Objective-C Client Library - Google Project Hosting

このページにあるSubversionコマンドを実行すると、ファイルを取得できる。

svn checkout http://gdata-objectivec-client.googlecode.com/svn/trunk/ gdata-objectivec-client-read-only

※ディレクトリ名の「gdata-objectivec-client-read-only」は任意

ファイルが取得できたら成功。

2.プロジェクトを作成し、gdata-objectivec-clientを加え、ビルドできる様にする

まずはxcodeで新規作成を行い、「Master-Detail Application」を選択する。
プロジェクト名を「GoogleCalendarAccessTest」とし、このプロジェクトでgdata-objectivec-clientをビルドできる様にする。

以下のページの説明が画像付きでとてもわかりやすいが、英語なので簡単に解説を書いておく。
GData Objective-C Client Setup in XCode 4 | Kelvin's Blog

●Download the GData sources and drag the GData.xcodeproj from Finder into your project source tree.

まず先ほど取得したディレクトリをFinderで開き、「gdata-objectivec-client-read-only/Source/GData.xcodeproj」を作成したプロジェクトにドラッグ&ドロップする。

※参考ページの1枚目の画像を参照のこと

●Add a new target dependency: Click your target -> Build Phases -> Target Dependencies -> the + button…など

xcodeで、先ほど作成したプロジェクト(ここでは「GoogleCalendarAccessTest」)を選択し、画像を参考に、プロジェクト設定の画面を開く。

注意点として、ここでは「GoogleCalendarAccessTest」のプロジェクト設定を選択すること。
先ほど追加した「GData.xcodeproj」のプロジェクト設定ではない。
(ここで間違えて、ビルドできなくてはまった)

  • 「Target Dependencies 」に「GDataTouchStaticLib」を追加、
  • 「Link Binary With Libraries」に「libGDataTouchStaticLib.a」「Security.framework」「SystemConfiguration.framework」を追加
  • 「Other Linker Flags」に「-ObjC」「-lxml2」「-all_load」を設定
  • 「Header Search Paths」に「/usr/include/libxml2」を設定

ここまで画面の通りに作業しておく。

●Remove unnecessary APIs:

以下の2つの設定だけあればいいので、不要な定義を削除しろと行っている。

「-DGDATA_REQUIRE_SERVICE_INCLUDES=1」
「-DGDATA_INCLUDE_CALENDAR_SERVICE=1」

※ちなみに、別に消さなくてもビルドできる

この項目の作業をするときは、「GData.xcodeproj」のプロジェクトを選択し、「GDataTouchStaticLib」を選択してから行う。

●いよいよビルド

ここまでできたらビルドを実行する。

ここでビルドに失敗したら、これまでの作業で間違えている可能性大なので、エラーメッセージをよく読み設定を再度確認。

ビルドに成功したら一安心。山場は超えた。

オーガナイザを開き、画面中央の上のアイコン「Projects」をクリックし、左側に表示されたプロジェクトからGoogleCalendarAccessTestのプロジェクトを選択。

画像ファイルのように、「Deriverd Data」の右端の矢印をクリックし、Finderを表示する。

以下のようなディレクトリを開いていくと、「Headers」ディレクトリがあるので、xcodeにドラッグ&ドロップする。
「GDataAccessTest-frhfqwxbfvkbcydratnnaerjjqiz/Build/Products/Debug-iphonesimulator」

これで、GoogleCalendarにアクセスするコードを書くための準備は終了。

「MasterViewController.h」に「#import "GData.h"」を追加してビルドしてみて成功すれば問題なし。