2017-04-05 1 views
3

이전에 Swift 2.2에서 Xcode 7에서 실행 중이던 프로젝트가 있습니다. 그러나 Xcode 8과 Swift 2.3으로 마이그레이션하기 시작했습니다 (Swift 3는 나중에 나옵니다). 프로젝트를 처음 마이 그 레이션하는 것이므로 많은 개념을 상당히 새로 도입했습니다.Xcode 8 - 사용자 헤더 경로를 찾을 수 없습니다.

다음 오류가 계속 발생합니다. 'JBBarChartView.h'파일을 찾을 수 없습니다.

이 내 프로젝트가 브리징 헤더에 파란색 화살표 포인트 (개인 정보 보호를 위해 중요하지 않은 부분을 흐리게)과 같은

enter image description here

방법이다. 내 브리징 헤더가 다음과 같이 표시됩니다. enter image description here

및 여기 내 실제 폴더 구조입니다. enter image description here

JBBarChartView.h와 같은 중요한 헤더 파일은 공급 업체 폴더 안에 있습니다. 이상한 이유로 Xcode는 파일을 찾을 수 없으므로 Bridging Header를 가져 오지 못합니다.

지금까지 내가 시도한 것입니다 : 관련 대상에 대한

  • , 내가 스위프트 컴파일러 설정 - 올바른 위치로 일반> 목표 - C 브리징 헤더합니다.
  • 대상에 대한 헤더 검색 경로를 ../../${SRCROOT} 및 재귀 적으로 설정했습니다. ../../${SRCROOT} 재귀 :
  • 또한 항상 사용자 경로
  • 그리고 내 사용자 헤더 검색 경로는 또한 검색에 YES 을 선택했습니다. (수동으로, 내 빌드 설정에서)
  • 다음과 같은 xconfig 파일도 있습니다. HEADER_SEARCH_PATHS = "../$(SRCROOT)/**"(그 중에서도 모두 공백으로 구분됩니다.)
  • 나는 DerivedData 폴더를 너무 깔끔히 처리하고 Xcode를 여러 번 재시작했습니다.

Xcode에서 헤더를 찾을 수없는 이상한 이유가 있습니다. 아무도 제가 시도 할 수있는 아이디어가 있습니까?

답변

0

../../${SRCROOT}은 잘못 보입니다. - 아마도 ${SRCROOT}/../Vendor/ (또는 뭔가 가깝게)을 원할 수도 있습니다.

추가 할 때 이어야합니다.은 SRCROOT 매크로를 확장하고 생성되는 실제 경로를 표시합니다. 올바른 모양입니까?내가 사용하는 예를 들어

:

${SRCROOT}/../Vendor/ 

를 내가 얻을 : 내가 찾고 내 공급 업체 파일을 둘 것

/Users/DonMag/Source/TestProj/../Vendor/ 

에서 :

/Users/DonMag/Source/Vendor/ 

내 해결 단계 :

프로젝트에 FindMe.h 파일을 새로 작성하십시오. 그것에 #define FOUNDIT 1을 넣으십시오. AppDelegate.m 상단에 #include "FindMe.h"을 추가하십시오.

는 didFinishLaunchingWithOptions에 추가

#ifdef FOUNDIT 
    NSLog(@"Woo Hoo"); 
#endif 

물론, 즉 컴파일하고 문제없이 실행해야합니다.

다음으로 프로젝트에서 FindMe.h에 대한 참조를 삭제하고 FindMe.h를 한 폴더 수준 위로 이동하십시오. 컴파일하려고 --- "FindMe.h 찾을 수 없습니다"오류가 발생합니다.

은/실행을 컴파일하는 Header Search Path

시도로 ${SRCROOT}를 추가합니다. 그 해야 작동합니다. 그렇다면 ...

다른 폴더 수준으로 FindMe.h를 이동하고 Header Search Path${SRCROOT}/../으로 변경하십시오. 컴파일/실행 --- 작동해야합니다.

.h을 하나의 레벨 (새 폴더의 위아래로 이동)로 이동하고 Header Search Path을 편집하여 빌드/실행을 확인하여 "공급 업체"헤더 파일의 대상 폴더에 도달 할 때까지 .

+0

$ {SRCROOT} /../ Vendor /를 사용하여 제안한 내용을 시도해 보았습니다. 경로도 올바르게 보입니다. 그러나 이상한 이유로 Xcode는 여전히 그 파일을 찾을 수 없습니다. 이 문제를 일으킬 수있는 다른 생각이 있습니까? – Misha

+0

아니면 Xcode가 빌드 로그에서 어디에서 찾고 있는지를 알 수있는 방법이 있습니까? – Misha

+0

내가 옳지 않은 것을 알아내는 데 필요한 단계로 내 대답을 편집했습니다. – DonMag