したがって、私のフレームワークで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?