2017-02-23 22 views
3

したがって、私のフレームワークでKeyChainにアクセスする必要がある問題が発生しています。それは問題ありませんが、シミュレータで実行すると失敗するようです。その周囲を掘り起こすことは、既知の問題であると思われます。ここではxctestが間違っています。十分に公正で、バグが起こる。アップルのデベロッパーフォーラムでは、ここで議論しています:iOSフレームワークのテスト対象をダミーアプリケーションで実行する方法は?

右。

これはライブラリテスト(Xcodeによるロジックテストとも呼ばれます)に関するよく知られた問題です。これらのテストは、資格を持たないツール(xctest)によって実行されます。歴史的に、これはカスタムエンタイトルメントを使用している人(CloudKitにアクセスするなど)に問題を引き起こしましたが、現在はキーチェーンを使用している人にも影響します。

AFAIK直接回避策はありません。 しかし、私はあなたのアプリ内でこのテストコードを実行することで問題を回避できると信じています(強調版)(これは、アプリケーションテストと呼ばれるドキュメント内)。

これらはアプリ内で実行されるため、アプリのエンタイトルメントが取得されます。 もしあなたが便利なアプリケーションを持っていないのであれば、を使ってテストをホストするだけのダミーのものを作ることができます。(強調する鉱山どうすればよいですか?

これを試してください。 ああ、回避策を利用できないようにして、これに関するバグを報告しないようにしてください。 Xcodeはエンタイトルメントでライブラリテストを実行できなければなりません。この最近のキーチェーンの変更により、これはさらに重要になります。 共有し、楽しみ

https://forums.developer.apple.com/message/179846(参照:2016年11月4日午前2時12分AMにエスキモーの返信は)

彼は再び別の回答で言うように行く:

  • ますアプリ内でテストを実行して問題を回避し、便利なアプリがない場合はダミーのアプリを作成することができます。(強調鉱山)
  • この制限については、お気軽にバグを報告してください。

だから、再び彼は参照:

をあなたは便利なものを持っていない場合はダミーのアプリを作成し、アプリ内でテストを実行することで問題を回避することができます。

私はこれをやって嬉しいです、私はちょうど方法を理解するように見えることができません。私が持っている

パーツ:

Framework Project 
    | 
    |- Unit Test Target 
    |- Framework Target 

Dummy App Project 
    | 
    |- ??? How do I make this run the Framework's Unit Test Target? 

答えて

3

ああ、この記事が助けた:

https://medium.com/@ryuichi/setup-host-app-for-keychain-tests-in-xcode-8-97222611917e#.z3zpqwnzt

私はちょうど新しいターゲットを追加するために必要な、全く新しいアプリのプロジェクトを追加しましたFramework project for a Single View Application

これで、テスト対象でHost Applicationを選択することができます。

私の以前の図を使用して、働いていた最終的な結果は次のとおりです。

Framework Project 
    | 
    |- Unit Test Target 
    |- Framework Target 
    |- Dummy App Target 

enter image description here

関連する問題