Home > iPhone SDK / Cocoa / Objective-C > 非公開APIの使い方

非公開APIの使い方

実際に使うかどうかはともかくとして、開発者たるもの好奇心と探究心を大切にしなければなりません。というわけで、非公開APIの使い方です(といっても特に難しいことはないのですが)。

1. 使用するAPIの見当をつける

まずは、非公開APIのリストがなくては始まりません。後述するように簡単に自作することもできるのですが、Erica Sadun 女史のサイトに分かりやすくまとまっていますのでこちらを参照するとよいのではないでしょうか。

ericasadun.com (Site Highlights → 2.2 Framework Documentation

Cocoaのくどい(?)メソッド名のおかげで、地道に調べていけばお望みの機能の実装方法の見当をつけることはそれほど難しくないかと思います。

2. フレームワークを読み込む

使用したいクラスが決まったら、そのクラスが含まれるフレームワークを読み込みます。/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.sdk/System/Library/PrivateFrameworks 以下にありますね。

3. ヘッダファイルを用意する

続いて、必要なヘッダファイルを用意します。上記のサイトから地道にコピーしてきても良いのですが、行番号が入ってしまっているため面倒です。ここで活躍するのが、各種バイナリファイルから含まれるクラスのヘッダファイルを生成してくれる class-dump-x です。

しかし、今確認してみたところオフィシャルサイトのサーバーに接続できない状態のようです。ファイル自体はこのあたりから取得できそうな感じですが(試していません)、何かあったのでしょうか…。(追記@2009.1.16)無事復活していました。

とにかく、無事アプリケーションファイルを入手できたら、/usr/local/bin あたりのパスが通ったディレクトリに配置して、

> class-dump-x AddressBookUI.framework/AddressBookUI

といったようにすると、AddressBookUIフレームワークに含まれるクラスのヘッダファイルに相当するソースコードがずらずらと表示されます。クラスを限定したい場合には、

> class-dump-x AddressBookUI.framework/AddressBookUI -C [クラス名の正規表現]

こんな感じです。-H オプションをつければ、ヘッダファイルとして吐き出してくれるのでさらに便利です。ちなみに、カテゴリに対しては(クラス名にはヒットせず)カテゴリ名のみが検索対象のようです。

なお、必要なヘッダファイルで使用されているクラスのヘッダファイルも作成して、とやっているとキリがありませんので、直接使用しないクラスは @class で逃げておくとよいでしょう。

4. がんばって試行錯誤する

ここまでくれば、後はあーでもないこーでもないと試行錯誤するだけです。一応お約束なので書いておきますが、ご利用はくれぐれも自己責任でどうぞ。

ちなみに、英語では「undocumented API」と呼ぶのが一般的なようです。

関連する投稿

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://iphone-dev.ensites.net/archives/571/trackback
Listed below are links to weblogs that reference
非公開APIの使い方 from iPhoneアプリ開発ブログ

Home > iPhone SDK / Cocoa / Objective-C > 非公開APIの使い方

Search
Feeds
Meta

Return to page top