気づけばTouchJSON1.0.8が4月末にリリースされとりました。

JSONは軽量かつ汎用なテキストフォーマットで、TouchJSONはそのiPhone向けのシリアライザ/デシリアライザなり。

最近の部長のお気に入りで、このブログでも過去何度か登場しとります。詳しくはそっちを見てちょ。

とりあえず本家からダウンロードしてきて、適当な場所にファイルを解凍したとこから解説スタート。
  1. Xcodeのメニューから「ファイル->新規プロジェクト」
  2. 左のメニューでiPhoneOS内「Library」を選び、右の一覧から「Cocoa Touch Static Library」を選んでから「選択…」ボタンを押す
  3. TouchJSON_1.0.8フォルダの一つ上のフォルダを選び、名前を「TouchJSON_1.0.8」にして「保存」ボタンを押す
  4. 「置き換えてもいいですか?」と警告されるが、構わず「置き替え」ボタンを押す
  5. いきなりClassesグループを削除して、代わりにTouchJSON_1.0.8/Source以下をプロジェクトに加える
  6. Xcodeのメニューから「プロジェクト->アクティブターゲット"TouchJSON-1.0.8を編集"」を選ぶ
  7. 出てきた設定のうち、プロダクト名を「TouchJSON」に変更したら準備完了!
  8. さっそくビルドしてみる。完了すると TouchJSON_1.0.8/build 以下に Debug-iphoneos/libTouchJSON.a とか Debug-iphoneossimulator/libTouchJSON.a とか出来とるので、自分のプロジェクトにリンクして使う。
photo1まぁだいたいこんな感じです。で、実は7の部分がなにげに重要で、Xcode上でプロダクト名(最終的に出力されるファイルの名前)を変えたい時の技です。これ、非常にわかりにくいと思うんで(他の方法で操作できない)、覚えておいて損は無いでしょう。

なぜなら、「プロジェクト->名称変更」だと、今回みたく名前の後ろにバージョン番号がついとると、その数字だけは変更できないんだよね。Xcode空気読みすぎ!

そしてiPhoneのスタティックライブラリを作る場合、実機用のDebugビルドとReleaseビルド。そしてシミュレータ用のDebugビルドとReleaseビルド。最低4回のビルドが必要です。バージョンはなるべく若いと、より多くのiPhoneをサポートできるので、問題なければデバイスは2.2.1、シミュレータは3.0でビルドしておくとよいかも(まだよくわかってない)

そんで!

作ったスタティックライブラリを自分のプロジェクトで使う場合、Xcodeのメニューから「プロジェクト->プロジェクト設定を編集」を選び、「他のリンカフラグ」「ヘッダ検索パス」「ライブラリ検索パス」を自分の環境に併せて編集する。

photo2部長の場合、ライブラリのヘッダは ~/src/Lib/Headers に、ライブラリ本体(.a)は ~/src/Lib/Library/~ に置いてあるので、「他のリンカフラグ」には「-lTouchJSON」を追加。「ヘッダ検索パス」には「~/src/Lib/Headers」を追加。「ライブラリ検索パス」には、「~/src/Lib/Library/$(BUILD_STYLE)-$(PLATFORM_NAME)」と追加してあります。

「ライブラリ検索パス」にややこしい設定を追加しとりますが、こうしとくとビルド時に
  1. 実機向けDebugビルド
    ~/src/Lib/Library/Debug-iphoneos/TouchJSON.a
  2. 実機向けReleaseビルド
    ~/src/Lib/Library/Release-iphoneos/TouchJSON.a
  3. シミュレータ向けDebugビルド
    ~/src/Lib/Library/Debug-iphoneossimulator/TouchJSON.a
  4. シミュレータ向けReleaseビルド
    ~/src/Lib/Library/Release-iphoneossimulator/TouchJSON.a
と自動的に解釈され、上で説明した4タイプのライブラリを適時リンクしてくれるようになって実に都合がよろしいのだ。


世の中便利で多機能なライブラリが沢山公開されとるんで、こうして積極的に取り込んでいきましょう。そんで、自分で作ったライブラリが他のプロジェクトで使われるようになったら最高だね。