[ios] Xcode 8 베타-현재 Swift 구문으로 변환 실패 : 테스트 호스트를 찾을 수 없음

Xcode 8의 변환 마법사를 사용하려고하면 오류 메시지가 나타납니다. 재부팅을 시도하고 새 코드를 다운로드하고 DerivedData 파일을 삭제 한 후이 오류를 피할 수 없습니다.

현재 Swift 구문으로 변환 실패 : 테스트 호스트를 찾을 수 없음

Swift 2.3과 Swift 3의 두 가지 옵션을 모두 시도했습니다. 버전을 선택하면 즉시 오류가 발생합니다.

다음은 오류의 스크린 샷입니다.

Xcode 8 변환 오류 메시지



답변

이것은 나를 위해 일했습니다.

  1. 왼쪽 브라우저에서 Xcode 프로젝트를 선택하십시오.
  2. 프로젝트 General탭 에서 테스트 대상을 클릭 하십시오.
  3. “테스트”를 공개합니다. 내 프로젝트에서 “호스트 애플리케이션”풀다운 버튼이 비어있었습니다. 적절한 호스트 애플리케이션을 선택하십시오.
  4. 지금 테스트 대상을 구축해보십시오. 성공하면 구문을 변환해야합니다.

Xcode 8 베타를 설치 한 후이 문제가 발생했기 때문에 관련이 있다고 가정합니다.

@karthikkck의 사진 크레딧
여기에 이미지 설명 입력


답변

iluvcapra의 매우 유용한 답변에서 언급 된 “호스트 응용 프로그램”풀다운 을 찾는 데 약간의 시간이 소요되었습니다 .

그래서 이것이 그가 의미하는 바입니다.

여기에서 풀다운 메뉴를 찾을 수 있습니다. 주요 목표를 선택하십시오.

풀다운 메뉴가있는 곳입니다.


답변

나는 이것에 대한 쉬운 수정을 찾았습니다. Scheme을 편집하고 테스트를 비활성화하십시오.

여기에 이미지 설명 입력

그리고 변환을 다시 실행하십시오.


답변

+1 iluvcapra

또는 텍스트 편집기를 사용하여 MyAppSwift.xcodeproj / project.pbxproj 파일 에서 다음 두 항목을 제거하고 TEST_HOST를 검색합니다 .

이제 프로젝트를 다시 열고 변환 마법사를 다시 실행하십시오.

    4EFFFAE51B53D5D8003CD25A /* Debug */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            GCC_PREPROCESSOR_DEFINITIONS = (
                "DEBUG=1",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Debug;
    };
    4EFFFAE61B53D5D8003CD25A /* Release */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Release;
    };


답변

여기에 이미지 설명 입력

다음 단계를 시도하십시오.

  1. Xcode의 왼쪽에서 프로젝트를 선택하십시오.
  2. 대상으로 이동하여 프로젝트 테스트를 선택하십시오.
  3. 일반 탭을 선택하고 호스트 응용 프로그램 드롭 다운을 선택하고 호스트 응용 프로그램을 선택합니다.
  4. 프로젝트를 변환하거나 실행하십시오.

이 단계를 시도하는 것이 저에게 효과적이었습니다.


답변

제 경우에는 테스트 대상을 삭제 한 다음 + 아래 대상을 사용하여 다시 추가하고 “iOs Unit Testing Bundle”을 선택했습니다.

어떤 이유로 컴파일 오류가 발생하여 “Per-configuration Intermediate Build Files Path : for my test target to $ (PROJECT_TEMP_DIR) / $ (CONFIGURATION) for both debug and release. 이렇게하면 컴파일이 작동 할 수있었습니다.


답변

3 단계로이 문제를 해결하십시오.

  1. 먼저 테스트 대상 삭제
  2. 편집-> 변환-> 현재 Swift 구문으로 …를 선택하고 변환을 수행하십시오.
  3. 그런 다음 새 테스트 대상을 추가하십시오.