2017-02-01 4 views
2

저는 Swift Package Manager와 함께 일하고 있습니다. 나는 "신속한 빌드"를 통해 성공적으로 구축 할 수있는 프로젝트를 가지고 있습니다. "swift package generate-xcodeproj"를 통해 Xcode 프로젝트를 만들었습니다. Xcode에서 프로젝트를 열면 성공적으로 빌드됩니다.ModuleMap : 우산 머리글의 상대 경로를 어떻게 설정할 수 있습니까?

module ModuleA { 
    umbrella header "/Users/Robert/Temp/MyProject/Sources/ModuleA/include/ModuleA.h" 
    link "ModuleA" 
    export * 
} 

모듈 B가에 의존하고 다음 수입 갖는다 :

import ModuleA 

엑스 코드 프로젝트

모듈 A는 다음의 맵이 두 모듈 A를 포함하고, B. 여태까지는 그런대로 잘됐다; 모든 것이 성공적으로 구축됩니다. 이 같은 상대 경로를 사용하도록 지금은 모듈 맵을 변경하려면 :

module ModuleA { 
    umbrella header "ModuleA.h" 
    link "ModuleA" 
    export * 
} 

그러나, 나는 내가 구축 모듈 B를 얻을 수 없음을 수행 할 때 오류 - 'ModuleA.h'우산 헤더를하지 녹이다. 빌드 설정 -> 검색 경로 -> 헤더 검색 경로 및 사용자 헤더 검색 경로에서 내가 생각할 수있는 모든 것을 시도했습니다. 나는 비슷한 문제를 온라인으로, 다른 곳에서도 찾았고, 읽은 것을 시도했지만 아직까지는 시도하지 않았다.

이것은 머리카락을 당기는 단계에 도달했습니다. 어떤 조언을 많이 주시면 감사하겠습니다!

답변

1

내 생각에 생성 된 modulemap을 수정하고 계신 것 같습니다. 포함 /Users/Robert/Temp/MyProject/Sources/ModuleA/include/module.modulemap에서 modulemap 파일을 만듭니다

module ModuleA { 
    umbrella header "ModuleA.h" 
    link "ModuleA" 
    export * 
} 

실행 $ swift package clean을 사용자 정의 작동 modulemap 확인하는 .build 디렉토리와 $ swift build에 이전 생성 modulemap를 제거 할 수 있습니다. 그런 다음 생성 된 Xcode 프로젝트를 삭제하고 다시 생성하십시오.

+0

감사합니다. Ankit! 그게 효과가 있었어. 그리고, 왜 그것이 효과가 있었는지에 대해 밝힐 수 있다면 그것은 위대 할 것입니다. 'swift package generate-xcodeproj' 명령을 실행했을 때 모듈 맵을 가지고 있으면 모듈 맵의 상대 경로에 적합한 설정으로 프로젝트가 생성되었다고 가정합니다. 그러나 내가 어떻게 알았 으면 프로젝트를 수동으로 조정할 수 있었어야했는데, 그렇습니까? [xcode의 빌드 설정의 광대 함은 너무 힘듭니다] – Verticon