4

まず第一に、私はこのトピックにかなり慣れていないので、それがどのように機能するかのいくつかの一般的な側面について少し混乱していると言いたい. 基本的に、私は2つのターゲットを持つiOSプロジェクトに取り組んでいます.1つは私が開発しているアプリ自体であり、フロントエンドのiOSクライアントです.バックエンド フレームワーク。

アプリ自体 (私が取り組んでいるクライアント) と静的ライブラリ (バックエンド フレームワーク) の両方のファイルは、同じ xcode プロジェクト バンドルにあります。静的ライブラリの「セットアップ手順」を行ったことがない場合でも、コンパイルでは問題なく動作しているようです。

問題は次のとおりです。テスト駆動開発アプローチを採用した新機能の開発を開始したいので、単体テストをセットアップしています。そのため、苦労していたことの 1 つは、2 つの個別のテスト ターゲットを生成する必要があるかどうかでした。 、1 つは iOS アプリ用、もう 1 つは静的ライブラリ用 (これらは 2 つの別個のターゲットであるため)、または静的ライブラリと iOS アプリの両方に 1 つのテスト ターゲットを使用します。そのため、インターネットで読んで解決策を見つけました.Appleでさえここで提案しているように、一般的なアプローチは、静的ライブラリをアプリプロジェクトの「サブプロジェクト」として追加することです。

なぜ、そして現在の状況との違いは何なのかを自問自答しています(1つのプロジェクト、ターゲットへ、そのうちの1つは静的ライブラリです)。欠点はありますか?プロジェクト全体を再編成する必要がありますか?

4

2 に答える 2

1

My experience agrees with Apple and the common approach. I'd suggest making the framework a subproject. (I've had some issues finding headers, but that's my lack of mastery over Xcode, not a flaw in the process.)

Set up unit tests on each project, independently. This way, your tests are true to your objective with a framework: You've successfully decoupled the framework from the parent project entirely.

If you write the all of the unit tests in the parent project, what happens when the framework is needed in another project? You've got two choices. You can not test the framework, or string along the original parent. Do the right thing and split up your tests.

I've got an open source framework that I built, called SpiffyKit, that has a parent project called SpiffyTester. (I admittedly didn't unit test much, because it's all UI and no logic.) It may serve as a good example of a starting point.

于 2013-08-30T17:24:56.637 に答える