Xcode 6 / Beta 4: 프레임워크 대상과 함께 헤더를 브리징하는 것은 지원되지 않습니다.
방금 Xcode 6 베타 4로 업그레이드했으며 베타 2의 라이브 뷰용으로 만든 프레임워크가 있습니다.또 다른 빠른 버그로 인해 Obj-C 코드를 사용해야 했습니다.그러나 업그레이드할 때 다음 오류가 발생합니다.
오류: 프레임워크 대상과 함께 헤더를 브리징하는 것은 지원되지 않습니다.
릴리스 노트에서 아무것도 보지 못했거나 다른 마이그레이션 경로를 찾지 못했습니다.이것을 보고 해결책을 찾은 사람이 또 있습니까?
저는 베타 3이 실시간 보기를 위한 프레임워크의 필요성을 없앴다는 것을 알고 있지만, 제 경우에는 그것을 작동시킬 수 있다면 말이 됩니다.예비로 제거할 수는 있지만, 베타 4에서 완전히 깨지지 않았다면 프레임워크를 사용하고 싶습니다.
오류가 명시한 대로 Framework에서는 헤더를 브리징할 수 없습니다.믹스 앤 매치 애플 문서의 동일한 프레임워크 대상 내에서 코드 가져오기 섹션은 이를 암시합니다."우산 헤더 파일에서 Swift에 노출할 모든 Objective-C 헤더를 가져와야 합니다."
그러나 이러한 특정 헤더도 공개해야 할 수 있습니다.이 답변은 Swift 컴파일러 오류: "프레임워크 모듈 내부의 비모듈형 헤더"를 수행하는 이유와 방법을 검토합니다.
다음을 수행합니다.
- 브리징 헤더 파일을 제거합니다.
- 프레임워크의 빌드 설정에서 브리징 헤더 파일에 대한 참조를 제거합니다.
- 필요한 헤더를 우산 파일([ProductName])에 추가합니다.h)
- 포함된 파일을 프레임워크의 "빌드 단계"의 "헤더" 섹션에 공개합니다.
- 청소 및 재구축.
참고: "우산 헤더 파일"은 파일([ProductName])입니다.일반적으로 프레임워크의 모든 공용 헤더를 나타냅니다.일반적으로 프레임워크에 포함된 다른 헤더에 대한 #import 문 목록입니다.Xcode에서 UIKit.h를 열면 우산 파일의 좋은 예를 볼 수 있습니다.
두 가지 가능성이 있습니다.필요한 헤더를 우산 헤더 파일에 추가하여 공개하는 것도 한 가지 방법입니다.그러나 Swift에서 헤더를 사용할 수 있어야 하지만 공용이 아닌 경우에는 문제가 됩니다.
Swift에서 내부 헤더를 사용할 수 있는 두 번째 가능성은 여기에 자세히 설명되어 있습니다.기본적으로 다음과 유사한 모듈 맵을 만들어야 합니다.
module AwesomeKitPrivate {
header "../InternalClass.h"
export *
}
그런 다음 다음 설정을 사용하여 XCode에 포함할 수 있습니다.
SWIFT_INCLUDE_PATHS = $(SRCROOT)/AwesomeKit/ProjectModule
동일한 프레임워크에서 Swift로 목표-C 코드를 가져오려면 다음과 같이 하십시오.
- 빌드 설정의 패키징에서 해당 프레임워크 대상에 대한 모듈 정의 설정이 "예"로 설정되어 있는지 확인합니다.
우산 헤더 파일에서 Swift에 노출할 모든 Objective-C 헤더를 가져옵니다.예:
#import "XYZ/XYZCustomCell.h"#import "XYZ/XYZCustomView.h"#import "XYZ/XYZCustomViewController.h"
포함된 파일을 프레임워크의 "빌드 단계"의 "헤더" 섹션에 공개합니다.
청소 및 재구축.
Swift는 당신이 공개적으로 노출하는 모든 헤더를 당신의 우산 헤더에서 볼 것입니다.해당 프레임워크의 Objective-C 파일 내용은 Import 문 없이 해당 프레임워크 대상 내의 모든 Swift 파일에서 자동으로 사용할 수 있습니다.시스템 클래스에서 사용하는 것과 동일한 Swift 구문으로 사용자 지정 Objective-C 코드를 사용합니다.
let myOtherCell = XYZCustomCell()
myOtherCell.subtitle = "Another custom cell"
중요: "우산 헤더 파일"은 {ModuleName} 파일을 의미합니다. BTW이며 대상 이름은 {ModuleName}입니다.뼈대
내 경우에는 그냥 제거하는 것.Objective-C Bridging Header
내프임크설에서 .Build Settings
도움이 되었습니다.
언급URL : https://stackoverflow.com/questions/24875745/xcode-6-beta-4-using-bridging-headers-with-framework-targets-is-unsupported
'source' 카테고리의 다른 글
WPF에서 그리드 행 숨기기 (0) | 2023.05.27 |
---|---|
귀사에서 npm과 함께 사용할 개인 저장소를 호스팅할 수 있습니까? (0) | 2023.05.27 |
주피터 노트북의 다른 디렉터리에 있는 py 파일 가져오기 (0) | 2023.05.27 |
null 값을 무시하는 mongoDB 3.2의 고유 인덱스 (0) | 2023.05.27 |
MongoDB 다이어그램 설계 도구 (0) | 2023.05.27 |