2016-11-23 4 views
9

Swift 패키지 관리자가 내 프로젝트의 모듈로 github의 코드를 컴파일 할 수 있지만 패키지 관리자가 내 컴퓨터에 로컬로 저장된 코드를 컴파일하도록 말할 수 있습니까?스위프트 패키지 관리자로 로컬 모듈을 만들 수 있습니까?

아이디어는 나머지 프로젝트와 분리되어 있으므로 폴더에 보관하면 스위프트 컴파일러가 빌드하므로 다른 모듈처럼 코드를 가져올 수 있습니다.

답변

12

Package.swift 파일에서 로컬 디렉토리를 참조 할 수 있지만 반드시 Git 저장소 여야합니다. 또한 Repo, 커밋 및 태깅을 초기화하는 것만으로는 충분하지 않습니다. 저장소가 원격으로 푸시되어 swift build이 올바르게 작동해야합니다.

SwiftPM Usage Guide에 따르면

Packages are Git repositories, tagged with semantic versions, containing a Package.swift file at their root. Initializing the package created a Package.swift file, but to make it a usable package we need to initialize a Git repository with at least one version tag.

Swift Package Manager Documentation는 "당신이 유효한 스위프트 패키지에 URL (또는 로컬 경로)를 지정할 수 있습니다"로컬 파일을 참조하여 예 Package.swift를 제공하는 상태 : .Package(url: "../StringExtensions", "1.0.0") .

: 나는 스위프트 패키지 관리자가 로컬 경로를 참조 할 수 있음을 명확히 답을 편집 할 수 있지만 경로 해야이 태그 유효한 Git 저장소가 포함되어 있습니다. 원래의 테스트 프로젝트는 .git 디렉터리가있는 종속 로컬 경로를 가리키며 따라서 swift build으로 성공적으로 빌드되었습니다. 또한

.package(url: "<path to repo>", .branch("master")), 

참조가 : https://github.com/apple/swift-package-manager/blob/master/Documentation/PackageDescriptionV4.md

+0

작동하지 않았다 스위프트 4 버전 도구를 –

+0

아마 위와 같습니다만, Package/repo를 변경하면 버전에 대한 태그/버전이 분명히 업데이트되어야합니다 현지에서 사용할 수있게됩니다. 예를 들어 변경 전 1.0.0 인 경우 태그를 1.0.1로 업데이트해야합니다. 적어도 이것은 지금까지 나의 경험이었습니다. (BTW, 나는이 행동이 미래에 바뀌길 바란다. 이것은 순전히 지역 개발에있어서 정말로 까다 롭다.) –

3

, 당신은 태그 버전을 제공 할 필요가 없습니다 곳이 항아리 할 수있는 다른 수단이있다. 나는`오류 : 디렉토리의 경로는 ... 자식 저장소가 아니다`고 생각합니다. 패키지 매니저가 자식 repo로 가져온 이유는 아마 .git 폴더를 남겨 두었을 것입니다.
+0

이것에 관해 하나의주의 사항이있다 : 당신이 편집하고있는 것을 볼 수있게하기 위해 적어도 당신의 변경을 커밋해야한다. . '신속한 패키지 업데이트'도해야 할 것 같습니다. –