programing

@testable 사용 시 '모듈이 테스트용으로 컴파일되지 않았습니다'

javajsp 2023. 4. 9. 20:57

@testable 사용 시 '모듈이 테스트용으로 컴파일되지 않았습니다'

스위프트의 것을 사용하려고 합니다.@testable내 수업을 테스트 대상에 노출시키겠다는 선언을 했다.이 에러가 : 만음 、 음음 、 음음 、 음 however 、 음 however however however 。

여기에 이미지 설명 입력

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

로는 " " 입니다.cocoapodsENABLE_TESTABILITY로로 합니다.YES★★★★★★★★★★★★★★★★★만Debug

앱 구성표에서 확인란을 올바르게 설정해야 합니다.보관 빌드에 대한 테스트 대상을 선택 해제해야 합니다.

여기에 이미지 설명 입력

Xcode Profiler 실행 시에만 이 문제가 발생하는 경우: 스킴 관리의 스위치프로파일 빌드 컨피규레이션에서 테스트성이 네이블로 되어 있는 컨피규레이션으로 대부분의 경우 디버깅됩니다.

여기에 이미지 설명 입력

Bitrise를 사용하여 테스트를 실행했을 때 이 오류가 발생하기 시작했습니다.

다른 사용자가 말하는 것과 달리 이것은Target 또는 「」에 따라Schema기준, 그것은Configuration을 선택합니다. 선택Target->Build Settings를.testability-> 사용하고 있는 설정으로 유효하게 합니다.

Apple은 AppStore가 아닌 디버깅에 사용하는 구성에서 이 기능을 사용하도록 권장합니다.

은 아마도 타깃이 될 입니다.Enable Testability로 설정되어 있다.NO로.YES디버깅 스킴(테스트 실행에 사용)으로 설정합니다.

하는 경우, 이 는 "Carto" "Import" 가 있는 를 Import 할 때 할 수 .@testable릴리스 스킴으로 구축되어 있기 때문입니다.

대부분의 경우 이 프레픽스를 사용하여 프레임워크를 Import하는 것은 바람직하지 않기 때문에 피할 수 있습니다. 되면 안 된다, 안 되면 안 안 된다.Enable Testability프레임워크의 릴리스 스킴에 포함되어 있습니다.https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html #//apple_ref/doc/uid/TP40001051-CH1-SW326

혹시 당신이

install! 'cocoapods',
         generate_multiple_pod_projects: true,
         incremental_installation: true

그러면 이렇게 하는 거예요.

    # generated_projects only returns results if the we run "pod install --clean-install"
    # or install a pod for the first time

    installer.generated_projects.each do |project|
        project.build_configurations.each do |configuration|
            configuration.build_settings["ENABLE_TESTABILITY"] = "YES" 
        end
    end

저는 초보라서 Xcode의 모든 설정과 옵션이 어디에 있는지 기억이 나지 않습니다.그래서 이런 질문에 대한 답변에서 "xxx를 yyy로 설정할 수 있습니다"를 보면 항상 답답함을 느낍니다.X코드의 xxx는 어디에 있습니까?그리고 그 yyy는 뭐죠?어떻게 일을 끝내는지 보여주는 지도가 필요하지만 xxx 같은 다른 단서는 필요 없습니다.우리는 National Treasure의 Nicolas Cage인 것 같아!

여기 있는 모든 단서들 정말 고마워요!당신은 정말 나를 도와준다.하지만 여기 구체적인 답이 있습니다(실제로 당신으로부터 온 것입니다).

  1. 프로젝트의 주요 대상 선택
  2. 빌드 설정 탭으로 이동합니다.
  3. "모두" 옵션 사용
  4. "빌드 옵션" 섹션 검색
  5. "테스트 가능성 활성화"를 "예"로 설정합니다.
  6. 몇 분간 기다리거나 Xcode를 재시작합니다(그 후 오류가 사라졌습니다).

새로운 Tests.swift 파일이 잘못된 타겟에 속했을 때 받았습니다.

위의 솔루션은 팟/카티지를 사용하는 경우 괜찮습니다.그러나 iOS 자체의 프레임워크를 사용하는 경우 '예:연락처'는 기본 프로젝트 대상의 '라이브러리 검색 경로'에서 이러한 프레임워크에 경로를 추가해야 합니다.여기에 이미지 설명 입력

프레임워크를 테스트하는 경우:

테스트 대상으로 이동합니다.-> 빌드 단계 -> 새로운 복사 파일 작성 단계 -> 프레임워크 선택 -> 재귀적으로 사용되는 모든 프레임워크 추가

Xcode 8 이전 프로젝트에서는 이런 일이 없었는데 Xcode 8로 업그레이드 한 후 당황스러웠습니다.

여기에 게시된 답변은 제 문제를 해결하지 못했습니다.저는 이 테스트가 필요없기 때문에 그냥 포기했습니다.따라서 테스트 버튼의 선택을 취소합니다.

여기에 이미지 설명 입력 그리고 이제 오류가 사라졌습니다.

언급URL : https://stackoverflow.com/questions/30787674/module-was-not-compiled-for-testing-when-using-testable