タグ別アーカイブ: Objective-C

よく使うコードを静的ライブラリで共有(Workspace + Static Library)

手抜きがしたい

いくつかアプリを開発していると、同じようなコードを書く事が多々あります。
それらをライブラリとしてまとめておいて、色々なアプリから共有する方法をメモ

Workspace をつくる

File → New → New Workspace… を選択し、新規作成する。

アプリケーションProject をつくる

File → New → New Project… を選択し、新規作成する。
保存先を指定するダイアログの Add to: で上記で作成した Workspace を選択する。

Static Library をつくる

File → New → New Project… を選択し、新規作成する。
その際、テンプレートで「Cocoa Touch Static Library」を選択する。

Static Library 側の設定

ターゲット → Build Settings で
Deployment → Installation Directory → $(BUILT_PRODUCTS_DIR)
Linking → Other Linker Flags → -ObjC
Packaging → Public Headers Folder Path → $(TARGET_NAME)

ターゲット → Build Phases で
Copy Files にヘッダーファイル(.h)をすべて追加する。

アプリケーション 側の設定

ターゲット → Build Phases で
ライブラリで作成した.aファイルを関連付ける(ドラッグ&ドロップ)

ターゲット → Build Settings で
Search Paths → User Header Search Paths → $(BUILT_PRODUCTS_DIR)
にしてRecursiveにチェックします。

Archive の際に StaticLibrary のヘッダファイルをアプリケーション側のプロジェクトにコピーしておく。

蛇足

実作業は結構、紆余曲折したので漏れがあるかもしれませんが、これで動作して申請までは行いました。
ただ、 Reject されちゃいましたが。。。(涙)

何度か再申請しても同じ理由で Reject されてますが、原因は恐らくこれとは無関係です。

それにしてもリジェクトの理由をズバリここを直せって言って欲しいっス

参考URL

xcode4のworkspaceを使ってコード共有

[iOS] XCode4.1でのStatic Libraryの作成と利用

Kazzzの日記

Objective-C でクラス名を知りたい

iPhone アプリを作っていて、クラス名を知りたいことがあり調べたのでメモ

で、クラス名が取得出来ます。

例えば、UIViewController に乗ってる View を知りたい場合、以下のようにすると SubView のクラス名がログ出力されます。