私のアプリは多くのプロジェクト(フレームワーク)で構成されており、メインの機能ごとに1つと、複数の機能でアクセスする必要があるあらゆる種類の共通のフレームワークがあります。
Xcode 11のSwift Package Managerを使用して依存関係を追加しています。
共通のフレームワークにはRxSwiftの依存関係が含まれており、プロジェクト全体で使用しています。
機能フレームワークのいずれかでRxTestを使用しようとすると、問題が発生します。
SPM経由でRxTestをテストターゲットに直接追加してテストを実行すると、
「クラス名」のスーパークラスをマングル名「他のクラス名」からデマングルできませんでした
そして多くの
クラス「クラス名」は「共通フレームワークパス」と「テストターゲットパス」の両方に実装されています
これらすべてのクラスはRx関連です。「デマングルに失敗しました」エラーはテストをクラッシュさせ、RxTestクラスを初期化しようとしたときにのみ発生します。
共通フレームワークにRxTestを追加すると、テストは正常に実行されますが、アプリを実行すると、
dyld:ライブラリがロードされていません:@ rpath / XCTest.framework / XCTest
私はテストフレームワークを非テストフレームワークに追加しているので、それは理にかなっています。
したがって、基本的に、テストとアプリの両方が正常に実行される構成を取得できませんでした。アプリを実行するか、テストを実行します。
これを機能させるにはどうすればよいですか?テストターゲットでビルドする場合にのみ、RxTestを共通フレームワークに含める方法はありますか?または、RxTestはテストターゲットにのみ含める必要がありますが、構成が不足していますか?