[ios] Xcode 6에서 빌드 된 이전 프로젝트에서 XCTest / XCTest.h를 찾을 수 없습니다.
Xcode 6 Beta 2로 빌드하려고하는 프로젝트가 몇 개 있습니다. 모든 프로젝트에는 XCTest / XCTest.h에서 빌드하지 않는 XCTest (Kiwi / XCTest 및 Specta)를 사용하는 라이브러리 유형이 있습니다. 찾을 수 있습니다.
fatal error: 'XCTest/XCTest.h' file not found
#import <XCTest/XCTest.h>
XCTest.framework가 더 이상 “Link Libraries with Binaries”빌드 단계 목록에 없다는 것을 알았습니다.하지만 Xcode 6 으로 새 프로젝트를 만들 때 라이브러리가 자동으로 연결된 것처럼 보이기 때문에 괜찮 습니다.
아마도 약간의 관련성이 있지만 XCTest가 필요한 종속성은 모두 Cocoapods를 통해 가져옵니다.
프로젝트로 업데이트해야한다는 사실을 모르는 것이 있습니까?
답변
참고 : Xcode 7에서 생성 된 프로젝트에는 필요하지 않을 수 있습니다.
CocoaPods에는 여기 와 여기에 대한 수정 사항이 있습니다 .
CocoaPod 종속성에 대해이 문제를 해결 FRAMEWORK_SEARCH_PATHS
하려면 XCTest가 필요한 모든 Pod 대상 (예 : Kiwi, Specta, FBSnapshotTestCase 등)에 다음을 추가해야합니다 .
$(PLATFORM_DIR)/Developer/Library/Frameworks
이렇게하면 모든 종속성에서 XCTest를 참조 할 수 있습니다. 이것은 CocoaPods의 향후 업데이트 또는 참조하는 Pod에서 수정 될 수 있으므로 나중에 제거 할 수 있습니다.
이전 버전의 Xcode에는 해롭지 않으므로 사용하기에 안전해야합니다.
답변
프로젝트에서 파일을 옮기고있었습니다. 당신이해야 할 모든 테스트 파일 선택이다 xxxTests.m
에 등을하고 file inspector
선택 target
으로 test
아닌 일반 대상으로.
답변
XCTest는 테스트 대상 (Xcode 6)에서만 사용할 수 있습니다. 어떤 이유로 든 다른 대상에 XCTest를 사용하는 경우 XCTest.h not found
오류가 표시됩니다.
답변
이 오류는 XCTest가 테스트 대상 외부에서 사용되는 파일을 추가 한 경우 발생합니다. AppCode에서이 문제를 해결하려면 의심되는 파일을 마우스 오른쪽 버튼으로 클릭하고 ‘대상 관리’를 선택한 다음 테스트 대상 만 선택되었는지 확인하십시오.
답변
@squarefrog에 정답이 있지만 포드를 업데이트 할 때마다 수동으로 계속해야합니다.
이것을 podfile에 추가하면 자동으로 추가 경로가 추가됩니다. 예를 들어 Specta 에 추가 $(PLATFORM_DIR)/Developer/Library/Frameworks
하려는 FRAMEWORK_SEARCH_PATHS
경우 :
post_install do |installer|
target = installer.project.targets.find { |t| t.to_s == "Pods-Tests-Specta" }
if (target)
target.build_configurations.each do |config|
s = config.build_settings['FRAMEWORK_SEARCH_PATHS']
s = [ '$(inherited)' ] if s == nil;
s.push('$(PLATFORM_DIR)/Developer/Library/Frameworks')
config.build_settings['FRAMEWORK_SEARCH_PATHS'] = s
end
else
puts "WARNING: Pods-Tests-Specta target not found"
end
end
답변
빌드 단계에서 XCTest 프레임 워크를 가져 와서 문제를 해결 한 후 얼마 후에 동일한 문제에 직면했습니다.
빌드 단계-> XCTest.Framework> 정리 및 실행. 누군가에게 도움이 되길 바랍니다 ..
참고로 … XCTest를 기존 프로젝트로 가져 오기
답변
글을 쓰는 시점에서 최신 버전의 Cocoapods (0.33.1)에는 문제에 대한 수정 사항이 없습니다.
그러나 최첨단 버전은 그렇습니다.
이 가이드 에 따라 소스에서 최신 버전의 Cocoapod를 설정하십시오. 나는 pod-dev
그것을 gem이 설치된 포드 버전과 구별하기 위해 내 (가이드에서 다룬) 라고 부릅니다 .
이 접근 방식의 이점은 Podfile에 추가 스크립팅이 필요하지 않다는 것입니다. pod-dev install
평상시 대신 a를 수행하는 것을 기억해야합니다 pod install
.