2014-11-16 5 views
2

이전 프로젝트에 xctest 프레임 워크를 추가하려면 어떻게해야합니까? 새 프레임 워크를 추가하려고하면 Link With Binary with Libraries의 사용 가능한 목록에서 xctest를 찾을 수 없습니다.이전 프로젝트에 xctest 프레임 워크 추가

나 또한 노력 편집 -> refractor-> convertToXCTEst하지만 xctest 사용을 선택하여 목표 : 목록에없는 대상

답변

6

엑스 코드 6.1.1에서, 또한 엑스 코드 6.0.1은 XCTest.framework는 더 이상 표시되지 않습니다 사용 가능한 프레임 워크로 그러나 Xcode 5.1.1에는 프레임 워크가 나열됩니다.

그래서 테스트에서 Xcode 5와 6 사이에 뭔가가 변경된 것으로 보입니다. 예를 들어 Xcode 6에서 새 프로젝트를 만들 때 더 이상 XCTest 프레임 워크가 필요하지 않습니다. 새 테스트 케이스를 추가하고 빌드하면 테스트가 잘 진행됩니다. 나는 이것이 왜 그런지를 아직 이해하지 못했지만, 시도해 볼 수있는 첫 번째 시도가 될 것입니다. 테스트 케이스를 코딩하고 일하는 것이 있는지 확인하십시오.

그렇지 않은 경우 다음과 같은 추악한 해결 방법을 시도해 볼 수 있습니다. 이전 버전의 Xcode로 프로젝트를 열고 프레임 워크를 추가 한 다음 새 버전의 Xcode로 돌아가십시오. 이것은 Xcode 5.1.1을 사용해 보았을 때 저에게 효과적이었습니다.


편집 :이 프로젝트는 YES로 설정 CLANG_ENABLE_MODULES 설정 빌드를 가지고 있기 때문에 XCTest.framework 더 이상 엑스 코드 (6)에 의해 생성 된 프로젝트에 필요한 이유입니다. Xcode 6은이를 UI에서 "Enable Modules (C 및 Objective-C)"이름으로 나타냅니다. 이 설정을 사용하면 XCTest와 같은 시스템 프레임 워크에 대한 #import 문을 사용하면 clang이 자동으로 해당 프레임 워크에 연결됩니다. 자세한 내용은 "Modules" section of the clang documentation에서 확인할 수 있습니다. 이 빌드 설정을 사용하도록 설정하면 대상의 빌드 이진 단계에서 "라이브러리와 이진 링크"빌드에서 다른 시스템 프레임 워크를 제거 할 수 있습니다.

가 가 가

은 분명히 애플은 이제 전적으로 의존

# Xcode 6 
/Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework 
# Xcode 5 
/Applications/Xcode-5.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/Developer/Library/Frameworks/XCTest.framework 
:

그리고 완전성 '을 위해

: Xcode의 번들 내부의 프레임 워크의 위치가 변경 되었기 때문에 엑스 코드 (6)는 더 이상 사용 가능한 프레임 워크로 XCTest.framework을 나열하는 이유는 CLANG_ENABLE_MODULES는 XCTest.framework에 링크 할 테스트 대상을 가져옵니다. 당신은 엑스 코드 (6)가 가능한 프레임 워크로 XCTest.framework을 나열 할 경우, 수동으로 엑스 코드 응용 프로그램 번들 내부의 심볼릭 링크를 만들 수 있습니다

cd /Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks 
sudo ln -s /Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework . 

당신은 링크를 생성 한 후 엑스 코드를 다시 시작해야합니다.

관련 문제