Mon application est composée de nombreux projets (frameworks), un pour chaque fonctionnalité principale et un framework commun avec toutes sortes de choses auxquelles j'ai besoin d'accéder dans plusieurs de mes fonctionnalités.
J'utilise Swift Package Manager de Xcode 11 pour ajouter des dépendances.
Le cadre commun contient une dépendance RxSwift, que j'utilise tout au long du projet.
Je rencontre des problèmes lorsque j'essaie d'utiliser RxTest dans l'un de mes cadres de fonctionnalités.
Si j'ajoute RxTest via SPM à la cible de test directement et exécute les tests, j'obtiens
n'a pas réussi à démêler la superclasse de «nom de classe» du nom mutilé «autre nom de classe»
et beaucoup
La classe «nom de classe» est implémentée à la fois dans le «chemin du framework commun» et dans le «chemin cible de test»
où toutes ces classes sont liées à Rx. L'erreur «n'a pas réussi à démêler» plante le test et se produit uniquement lorsque j'essaie d'initialiser une classe RxTest.
Si j'ajoute RxTest au framework commun, les tests fonctionnent bien, mais lorsque j'exécute l'application, j'obtiens
dyld: bibliothèque non chargée: @ rpath / XCTest.framework / XCTest
Ce qui est logique, car j'ajoute un framework de test à un framework non-test, et ce n'est pas quelque chose de bien à faire.
Donc, fondamentalement, je n'ai pas pu obtenir une configuration où les tests et l'application fonctionnent correctement. Soit l'application s'exécute, soit les tests s'exécutent.
Comment puis-je faire fonctionner cela? Existe-t-il un moyen d'inclure RxTest dans le cadre commun uniquement lorsque je le crée sur une cible de test? Ou RxTest ne devrait-il être inclus que sur les cibles de test et il me manque une configuration?