2017-11-13 2 views
0

Swift의 패키지 관리자를 사용하여 프로젝트에서 외부 모듈을 가져 오려고합니다. 첫 번째 모듈은 Vapor project에서 왔습니다. 나는 그것을 작동시키는 것처럼 보일 수 없다. 내가Swift 패키지 관리자를 사용하여 모듈 가져 오기

swift package init 
swift package generate-xcodeproj 

내 Package.swift 시작은 다음과 같습니다

import PackageDescription 

let package = Package(
    name: "OpenTools", 
    products: [ 
     .library(
      name: "OpenTools", 
      targets: ["OpenTools"]), 
    ], 
    dependencies: [ 
     .package(url: "https://github.com/vapor/json.git", from: "2.0.0") 
    ], 
    targets: [ 
     .target(name: "OpenTools", dependencies: ["JSON"]), 
    ] 
) 

그때 내 주요 파일에 JSON 패키지를 가져 오려고 다음

swift package update 
swift package generate-xcodeproj # to regenerate with dependencies 

을 실행하고

import JSON 

모듈은 다음과 같이 다시 입력하지만 No such module 'JSON' 오류로 가져 오기가 다시 발생합니다.

enter image description here

어떤 생각이?

답변

3

내가 평판이 충분하다면, 나는 이것을 논평으로 공식화 할 것이다. ;)
아마도 아직 알려지지 않았으므로 JSON이라는 Xcode가 문제가 될 수 있습니다. 아직 구축되지 않았기 때문에 가능합니다. 이것은 단지 프로젝트를 구축함으로써 쉽게 해결할 수 있습니다 (cmd-B 포함). 생성 된 xcodeproj를 사용하면 JSON이 대상에 대한 종속성으로 표시되어 있기 때문에 먼저 Xcode에서 JSON을 빌드 한 다음 나머지를 빌드해야한다는 것을 알아야합니다.
Xcode에서 대상 (프로젝트 설명 파일을 클릭했을 때)을 탐색 한 다음 "빌드 단계"로 이동하여이를 확인할 수 있습니다. 대상 종속성 아래에서 JSON 모듈을 찾아야합니다.

또한 대상 아래에 JSON 모듈이있어서 github에서 수집 한 소스를 컴파일해야합니다.

프로젝트 루트에 swift build을 실행할 때 프로젝트도 빌드해야합니다.

+0

올바른 내용입니다. 그것은 단지 Xcode의 버릇입니다. '⌘ + B'를 빌드하거나'⌘ + U'를 테스트 해보세요. 오류가 "매달려"계속 유지하면 Xcode를 다시 시작하십시오. –

+0

예,이 답변이 거의 틀림 없습니다. 그래서, 덧글이 아니야 – JeremyP

+1

나는 이것을 시험해 보았지만, 여전히 나를 위해 작동하지 않을 것이다. 심지어 대상 종속성에 뭔가가 있으며 빌드 단계의 링크 된 바이너리 섹션과 연결된다. 어떻게해야합니까? – RufusV

관련 문제