J'essaye d'utiliser la nouvelle @testable
déclaration de Swift 2 pour exposer mes classes à la cible de test. Cependant, j'obtiens cette erreur de compilation:
Intervals
est le module qui contient les classes que j'essaie d'exposer. Comment puis-je me débarrasser de cette erreur?
la source
@testable
) mais doivent être soumis à l'App Store? SiEnable Testability
c'est juste pour les versions de débogage, quel est le moyen de contourner cela? Dois-je extraire mon code de test pour la publication?Dans mon cas, j'ai utilisé une configuration de construction personnalisée pour les tests (appelée
Test
) et également encocoapods
tant que gestionnaire de dépendancesJ'ai dû ajouter les lignes suivantes à la fin de mon
Podfile
pour activer la testabilitéPar défaut
cocoapods
ensemblesENABLE_TESTABILITY
àYES
seulementDebug
buildsla source
Assurez-vous que vous avez correctement défini vos cases à cocher sous votre modèle d'application. Vous DEVEZ DÉCHARGER vos cibles de test pour la construction d'archives.
la source
Pour ceux d'entre vous qui rencontrent cela uniquement lors de l'exécution de Xcode Profiler: basculez la configuration de la construction du profil dans la gestion de votre schéma vers celle qui a activé la testabilité - et ce serait le débogage dans la plupart des cas:
la source
C'est probablement parce que votre objectif principal
Enable Testability
est défini surNO
. Vous devez le définirYES
dans le schéma de débogage (qui est utilisé pour exécuter vos tests).Si vous utilisez Carthage, ce problème peut être causé par l'importation de frameworks avec
@testable
, car ils sont générés avec un schéma de version.La plupart du temps, il est déconseillé d'importer des frameworks avec ce préfixe, vous pouvez donc l'éviter. Si vous ne pouvez pas, vous devriez
Enable Testability
dans le schéma de publication des frameworks. https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326la source
J'ai commencé à avoir cette erreur lors de l'exécution de tests avec Bitrise.
Contrairement à d' autres utilisateurs dit, ce ne sont pas par
Target
base ou parSchema
base, il est parConfiguration
base. SélectionnezTarget
->Build Settings
onglet -> rechercheztestability
-> Activez-le sur la configuration que vous utilisez .Veuillez noter qu'Apple recommande de l'activer sur la configuration que vous utilisez pour le débogage, pas pour l'AppStore.
la source
La solution ci-dessus convient si vous utilisez des pods / Carthage. Mais si vous utilisez des frameworks d'iOS lui-même «par exemple Contacts», vous devez ajouter un chemin vers ces frameworks dans «Library Search Paths» de la cible de votre projet principal.
la source
Si vous essayez de tester le framework:
Allez à la cible de test -> Phase de construction -> Phase de création de nouveaux fichiers de copie -> Choisissez des cadres -> Ajouter tous les cadres utilisés de manière récursive
la source
Si par hasard vous avez
Ensuite, c'est la façon de le faire.
la source
Cela ne s'est pas produit dans mes projets avant Xcode 8, mais après la mise à niveau vers Xcode 8, cela m'a rendu perplexe.
Les réponses publiées ici n'ont pas résolu mes problèmes. Pour moi, j'ai juste abandonné ces tests car ils ne sont pas nécessaires. Alors décochez les boutons de test:
Et maintenant, l'erreur a disparu.
la source