Tôi biết trình quản lý gói Swift có thể biên dịch mã từ github làm mô-đun cho dự án của tôi, nhưng tôi có thể yêu cầu trình quản lý gói biên dịch mã được lưu cục bộ trên máy tính của tôi không? Ý tưởng là tôi có một số mã mà tôi muốn tách khỏi phần còn lại của dự án, vì vậy tôi giữ nó trong một thư mục và trình biên dịch Swift sẽ xây dựng nó để mã có thể được nhập như bất kỳ mô-đun nào khác.Tôi có thể tạo mô-đun cục bộ với trình quản lý Gói Swift không?
Trả lời
Bạn có thể tham khảo thư mục cục bộ trong tệp Package.swift
của mình, nhưng nó phải là một kho lưu trữ Git. Ngoài ra, việc khởi tạo repo, cam kết và gắn thẻ không đủ; kho lưu trữ phải được đẩy đến điều khiển từ xa để swift build
hoạt động chính xác.
Theo 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.
Các Swift Package Manager Documentation cũng nói rằng "bạn có thể chỉ định một URL (hoặc đường dẫn địa phương) cho bất kỳ gói Swift hợp lệ" và cung cấp một ví dụ Package.swift
với một tham chiếu tệp cục bộ: .Package(url: "../StringExtensions", "1.0.0")
.
Note: Tôi chỉnh sửa các câu trả lời để làm rõ rằng Swift Package Manager có thể tham khảo một con đường địa phương, nhưng con đường phải chứa một kho Git còn hiệu lực với một thẻ. Dự án thử nghiệm ban đầu của tôi trỏ đến đường dẫn cục bộ phụ thuộc có chứa một thư mục .git
và do đó nó được xây dựng thành công với swift build
.
Với các công cụ phiên bản Swift 4, có phương tiện khác nhau để làm điều này-- nơi bạn không cần phải cung cấp một phiên bản được gắn thẻ:
.package(url: "<path to repo>", .branch("master")),
Xem thêm: https://github.com/apple/swift-package-manager/blob/master/Documentation/PackageDescriptionV4.md
Tôi thấy một trong những cảnh báo về điều này: Bạn phải ít nhất cam kết thay đổi của bạn để chi nhánh của bạn để có nó hiển thị cho những gì bạn đang biên dịch . Có vẻ như bạn cũng phải thực hiện 'cập nhật gói nhanh '. –
- 1. Thêm gói Swift 3 vào Xcode 8 bằng cách sử dụng trình quản lý gói Swift
- 2. quản lý gói nuget không đồng bộ
- 3. Nhiều trình quản lý gói
- 4. Trình quản lý gói PHP
- 5. có trình quản lý gói cho Xcode không? (như NuGet)
- 6. Làm thế nào để cài đặt gói Swift thông qua trình quản lý gói?
- 7. Trình quản lý bố cục jQuery
- 8. Tệp AAR cục bộ không quản lý các phụ thuộc
- 9. Tôi có thể tạo chương trình JavaScript độc lập cục bộ không?
- 10. Tôi không thể tạo trình giả lập trong Trình quản lý AVD của Android
- 11. Trình quản lý gói có nghĩa là gì?
- 12. Trình quản lý thực thể có tạo kết nối với cơ sở dữ liệu không?
- 13. Trình quản lý chuyển động không hoạt động trong Swift
- 14. Quản lý bộ nhớ không có nhánh?
- 15. Trình quản lý bố cục ưa thíchSize Java
- 16. Quản lý bộ nhớ Swift hoạt động như thế nào?
- 17. Gói được quản lý với giao diện không được quản lý
- 18. Quản lý bộ nhớ tùy chỉnh với bộ nhớ cục bộ tùy chỉnh
- 19. Có thể tạo Trình quản lý hàng đợi trên Websphere nhưng không kết nối
- 20. Quản lý gói cho C++
- 21. Quản lý gói TypeScript
- 22. Tôi làm cách nào để tạo bộ xử lý chú thích xử lý Biến cục bộ?
- 23. Có thể biên dịch nguồn được quản lý với các cờ trình biên dịch khác với nguồn không được quản lý không?
- 24. Không thể sử dụng gói trình quản lý hình học bên trong
- 25. Có gói quản lý nào trong Objective-C không?
- 26. Sử dụng trình quản lý gói có thể giải quyết vấn đề này?
- 27. Cập nhật trình quản lý gói Nuget 3.1.1.0 bị hỏng
- 28. Tạo một kho lưu trữ gói R cục bộ
- 29. Có cần `trình quản lý trình quản lý web` cần thiết không?
- 30. Trình quản lý sao lưu Android chỉ hoạt động trên phương tiện cục bộ
đã không làm việc. Tôi nhận được 'lỗi: Thư mục tại đường dẫn ... không phải là một kho lưu trữ Git'. Bạn có thể để lại một thư mục '.git' nằm trong thư mục của bạn, đó là lý do tại sao trình quản lý gói lấy nó như một git repo –
Có lẽ nó ngầm ở trên, nhưng đối với các thay đổi đối với Gói/repo, thẻ/phiên bản dường như phải được cập nhật cho phiên bản để trở nên có sẵn, tại địa phương. Ví dụ: nếu trước phiên bản của bạn là 1.0.0, bạn phải cập nhật thẻ thành 1.0.1. Ít nhất đây là kinh nghiệm của tôi cho đến nay. Điều này có vẻ thực sự khó khăn cho sự phát triển hoàn toàn của địa phương.) –