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

Intervals노출하려고하는 클래스가 포함 된 모듈입니다. 이 오류를 어떻게 제거합니까?
답변
기본 대상에서 Enable Testability빌드 옵션을 예로 설정해야합니다 .
아래 @earnshavian의 의견에 따르면, 이것은 애플 릴리스 노트에 따라 디버그 빌드에서만 사용해야합니다. “테스트 가능 빌드 빌드 설정은 내부 심볼 내보내기에 의존하지 않는 최적화를 금지하므로 디버그 구성에서만 사용해야합니다. 응용 프로그램 또는 프레임 워크 ” https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326
답변
필자의 경우 테스트를 위해 사용자 정의 빌드 구성 (이라고도 함 Test)과 cocoapods종속성 관리자를 사용했습니다.
Podfile테스트 가능성을 활성화 하기 위해 끝에 다음 줄을 추가해야했습니다.
post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            if config.name == 'Test'
                config.build_settings['ENABLE_TESTABILITY'] = 'YES'
            end
        end
    end
end
기본으로 cocoapods세트 ENABLE_TESTABILITY에 YES대해서만은 Debug빌드
답변
답변
답변
기본 목표가 Enable Testability로 설정되어 있기 때문일 수 있습니다 NO. YES테스트를 실행하는 데 사용되는 디버그 구성표로 설정해야합니다 .
Carthage를 사용 @testable하는 경우 릴리스 스키마를 사용하여 빌드 된 프레임 워크를 가져 와서이 문제가 발생할 수 있습니다 .
대부분의 경우 접두사가있는 프레임 워크를 가져 오는 것은 좋지 않으므로 피할 수 있습니다. 당신이 할 수 없다면, 당신은 Enable Testability프레임 워크의 릴리스 계획에 있어야합니다 . https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326
답변
Bitrise를 사용하여 테스트를 실행할 때이 오류가 발생하기 시작했습니다.
다른 사용자가 말한다 달리이 없는 당 Target으로, 또는 당 Schema으로, 그것은 입니다 당 Configuration기준. 사용중인 구성 에서 Target-> Build Settings탭-> 찾기 testability-> 사용 을 선택하십시오 .
Apple은 AppStore가 아닌 디버깅에 사용중인 구성에서이 기능을 활성화 할 것을 권장합니다.



