[swift] Objective-C 프레임 워크를 Swift 프로젝트로 가져올 때 Bridging Header에서 “파일을 찾을 수 없음”발생

ObjC 기반 프레임 워크를 가져 오려고하는 Swift 프로젝트가 있습니다. 프레임 워크는 프로젝트 경로 아래의 디렉토리에 있으며 Xcode의 프로젝트에서 참조됩니다. 프로젝트의 ‘Build Phases’페이지에있는 “Link Binary with Libraries”에도 추가됩니다.

그러나 어떤 이유로 Bridging-Header 파일에 프레임 워크를 포함 할 수없는 것 같습니다. 다음과 같은 오류가 발생합니다.

BridgingHeader.h:5:9: error: 'Parse/Parse.h' file not found
#import <Parse/Parse.h>
        ^
<unknown>:0: error: failed to import bridging header 'BridgingHeader.h'

내가 확인한 것 :

  1. “Objective-C 호환성 헤더 설치”가 “예”로 설정됩니다.
  2. 헤더 검색 경로에는 프레임 워크에 대한 경로가 포함됩니다.

나는 내가 뭔가를 놓치고 있다고 확신하므로 누군가 단서가 있다면 좋을 것입니다.



답변

해결책을 찾았습니다.

  • “Objective-C 브리징 헤더”설정 (일명 SWIFT_OBJC_BRIDGING_HEADER)은 프로젝트 수준이 아닌 대상 수준에서 설정해야합니다. 프로젝트 수준에서 설정 값을 삭제하십시오.

(저에게 Xcode 버그처럼 보입니다. 왜 수정했는지 모르겠습니다.)


답변

나는 같은 문제가 있습니다. 예를 들어 모든 가져 오기를에서 #import "HMSegmentedControl.h"로 변경했습니다
#import <HMSegmentedControl/HMSegmentedControl.h>.


답변

lib사용자 헤더 검색 경로에 내 디렉토리 를 추가해야했습니다 .

테스트 대상 설정-사용자 헤더 검색 경로

제 경우에는 lib디렉토리에 .a-library 파일과 일부 헤더 파일이 포함되어 있습니다. 이들은 브리징 헤더 파일에 포함되어 있습니다. 그러나 신속한 컴파일러는이를 찾지 못했습니다. ${PROJECT_DIR}/lib사용자 헤더 검색 경로에 추가했을 때만 테스트 대상을 구축했습니다.

(Mavericks 10.9.5에서 Xcode 6.2를 사용하고 있습니다)


답변

완전히 다른 원인으로 동일한 오류 메시지가 발생했습니다.

설정:

  • 앱 타겟, 모든 Obj-C 코드
  • 단일 신속한 테스트 케이스 및 앱 코드를 참조하는 브리징 헤더가있는 단위 테스트 대상

두 번째 빠른 테스트 케이스를 추가했을 때, 청소 후 (또는 팀 동료의 컴퓨터에서) 단위 테스트 대상을 빌드 할 때이 오류가 발생했습니다.

단위 테스트 대상에 더미 Obj-C 클래스를 추가하여 수정되었습니다.


답변

cocoapods를 사용하는 경우 다음 명령을 실행하여 pod를 다시 설치해보십시오.

pod install


답변

이것은 어떻게 든 나를 위해 트릭을했습니다.

  • 깨끗한 프로젝트
  • 빌드 폴더 정리
  • Xcode 다시 시작


답변

이 오류는 Cocoapods 라이브러리 CocoaImageHashing을 설치할 때 나타납니다. 문제는 검색 경로가 잘못되었다는 것입니다. 따라서 대상 수준의 빌드 설정-> 검색 경로-> 헤더 검색 경로에서 경로는 기존 폴더가 아닌 폴더 (예 : “$ {PODS_ROOT} / Headers / Public / CocoaImageHashing”)에 해당합니다. / 존재하지 않았습니다. $ {PODS_ROOT} / CocoaImageHashing 경로를 추가했는데 오류가 사라졌습니다.