2012-03-09 8 views
2

私はiOSプロジェクト(「MyLibs」という名前の)にたくさんのコードを持っています。私は別のアプリケーション間で再利用しています。 MyLibsプロジェクトを作成しているアプリケーションのワークスペースにドラッグします。単体テストは使用しませんが、iPhoneアプリではすべてのテストを非常に簡単に実行するよりもボタンがあります。iOSとCocoaライブラリにはどのプロジェクトテンプレートを使用しますか?

私はCocoaを勉強しており、私のライブラリを両方のプロジェクトで使用できるライブラリに分割したいと考えています。私はそれがMyCommonLibs(またはMyFoundationLibs)、MyIOSLibsおよびMyCocoaLibsになると思っていました。

しかし、新しいプロジェクトを作成するときは、iOSアプリかCocoaアプリかを選択する必要があります。 iOSフレームワークとライブラリ - > Cocoa Touch Static Libraryは、Foundationフレームワークとリンクしているため適切です。一方、私はそれに大きな欠点がない場合は、アプリケーションテンプレートを使用することを好むだろう。

私はテンプレートは、私がMyCommonLibsに使用すると、私が使用しなければならない

など、そのようなNSArrayのカテゴリとして、それらのいくつかは両方に有用である、両方のアプリの種類にMyCommonLibsを使用できるようにする必要がありますライブラリ、フレームワーク(Mac OSテンプレートの場合)、または通常のアプリケーションテンプレートを使用することはできますか?

+1

あなたは、様々な実際のプロジェクトで再使用するいくつかのコードのためだけのコンテナプロジェクトMyCommonLabsですか?その場合、単にiOS/other/emptyを使うことができます。それを静的ライブラリとして使用し、それを実際のプロジェクト内のフレームワークとして(コードのローカルコピーを作成するのではなく、実際には同じコードを共有するのではなく)組み込む場合は、iOS/Framework&Library/Cocoa touch静的ライブラリを使用する必要があります。 –

答えて

2
  1. iOSフレームワーク&ライブラリプロジェクトを作成します。 TestLibとしましょう。

  2. タイプMAC OS X Framework &ライブラリの新しいターゲット(ファイル>新規>ターゲット)を追加します。

このようにして、iOSライブラリとMAC OS Xライブラリを同じプロジェクトからコンパイルできます。

各ターゲットに含まれるファイルを選択できます。したがって、iOSとMac OS Xの両方でクラスを使用できるようにするには、両方に追加する必要があります.1つのプラットフォームのみで使用できるようにする場合は、1つのlibに追加できます。

あなたは下のスクリーンショットで見ることができるように、SharedClassは両方のlibsで利用可能である、iOSOnlyClassは、iOS用にのみ使用可能で、MACOnlyClassはMAC OS Xで利用可能です。

enter image description here

enter image description here

また、同じプロジェクト内のユニットテストのためのターゲットを追加することができます。

コードを整理するには、共有クラスをグループに入れ、各ターゲットのクラスを別のグループに入れます。

enter image description here

+0

一部のファイルにiOS用のコードがあり、他にCocoa用のコードがあると、XCodeはエラーになりませんか? – TigerCoding

+0

また、2番目のターゲットに「Cocoa Framework」または「Cocoa Library」を使用しますか? – TigerCoding

+0

"あなたは便利なタイプを使用することができます。「うーん、どちらがより便利なのでしょうか? ;)私は単にこれらのファイルを他のプロジェクトに含めるだけですが、このプロジェクトでもこれらのファイルをテストできるようにしたいと考えています。 – TigerCoding

関連する問題