[ios] @testable을 사용할 때 '테스트를 위해 모듈이 컴파일되지 않았습니다'



Answers

해결책은 꽤 간단합니다. 앱 구성표 아래에 체크 박스를 올바르게 설정했는지 확인하십시오. Archive Build에 대한 테스트 대상을 지정하지 않아야 합니다.

Question

Swift 2의 새로운 @testable 선언을 사용하여 클래스를 테스트 대상에 노출하려고합니다. 그러나이 컴파일러 오류 가져 오는 중 :

Intervals 는 노출하려는 클래스가 포함 된 모듈입니다. 이 오류를 제거하려면 어떻게해야합니까?




이것은 아마도 주요 타겟 Enable TestabilityNO 로 설정 되었기 때문일 수 있습니다. 테스트를 실행하는 데 사용되는 디버그 구성표에서 YES 로 설정해야합니다.

Carthage를 사용하는 경우 @testable 을 사용하여 프레임 워크를 가져 오면 릴리스 스키마로 빌드되기 때문에이 문제가 발생할 수 있습니다.

대부분의 경우 접두사가있는 프레임 워크를 가져 오는 것이 좋지 않으므로이를 피할 수 있습니다. 그렇지 않으면 프레임 워크의 릴리스 스키마에서 Enable TestabilityEnable Testability 해야합니다. https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326




포드 / 카르타고를 사용하는 경우 위의 솔루션을 사용할 수 있습니다. 하지만 iOS 자체 (예 : Contacts)의 프레임 워크를 사용하는 경우 기본 프로젝트 대상의 '라이브러리 검색 경로'에서 이러한 프레임 워크에 대한 경로를 추가해야합니다.




Related