Swift Package Registry
დამოკიდებულებების რაოდენობის ზრდასთან ერთად იზრდება მათი ამოხსნისთვის საჭირო დროც. სხვა პაკეტების მენეჯერები, როგორიცაა CocoaPods ან npm, ცენტრალიზებულია, ხოლო Swift Package Manager — არა. ამის გამო, SwiftPM-მა თითოეული რეპოზიტორიის სრული კლონირებით უნდა ამოხსნას დამოკიდებულებები, რაც დროს მოითხოვს და უფრო მეტ მეხსიერებას იკავებს, ვიდრე ცენტრალიზებული მიდგომა. ამ პრობლემის გადასაჭრელად, Tuist გთავაზობთ Package Registry-ის იმპლემენტაციას, რათა ჩამოტვირთოთ მხოლოდ ის კომიტები, რომლებიც ნამდვილად გჭირდებათ. რეესტრში არსებული პაკეტები ეფუძნება Swift Package Index-ს — თუ პაკეტს იქ იპოვით, ის Tuist Registry-შიც ხელმისაწვდომია. გარდა ამისა, პაკეტები მსოფლიოს მასშტაბით ნაწილდება edge storage-ის გამოყენებით, რაც ამოხსნისას მინიმალურ დაყოვნებას უზრუნველყოფს.
გამოყენება#
რეესტრის დაყენების ორი გზა არსებობს:
ვარიანტი 1: ავტომატური დაყენება გენერაციის დროს (რეკომენდებული)#
თუ Tuist-ს იყენებთ თქვენი პროექტის გენერაციისთვის, შეგიძლიათ ჩართოთ რეესტრი registryEnabled პარამეტრის მითითებით თქვენს Tuist.swift კონფიგურაციაში:
import ProjectDescription
let tuist = Tuist(
project: .tuist(
generationOptions: .options(
registryEnabled: true
)
)
)
ამ პარამეტრით, tuist generate ავტომატურად შექმნის რეესტრის კონფიგურაციის ფაილს თქვენს სამუშაო სივრცეში. ეს აღმოფხვრის tuist registry setup ცალკე გაშვების საჭიროებას.
registryEnabled ასევე აკონფიგურირებს რეესტრს იმ პროექტებისთვის, რომლებიც დამოკიდებულებებს აინტეგრირებენ Xcode-ის ნაგულისხმევი Swift Package Manager ინტეგრაციის მეშვეობით და არა Tuist-ის XcodeProj-ზე დაფუძნებული ინტეგრაციით. ის არ აკონფიგურირებს Xcode-ს იმ პაკეტების ამოსახსნელად, რომლებიც რეესტრიდან source control URL-ით არის განსაზღვრული. ამის გასაკეთებლად, გაუშვით tuist registry setup თითოეულ მანქანაზე ერთხელ, როგორც ეს აღწერილია Resolving source control packages-ში.
ვარიანტი 2: ხელით დაყენება#
რეესტრის ხელით დასაყენებლად, გაუშვით შემდეგი ბრძანება თქვენი პროექტის დირექტორიაში:
tuist registry setup
ეს ბრძანება ქმნის რეესტრის კონფიგურაციის ფაილს, რომელიც რეესტრს თქვენი პროექტისთვის ააქტიურებს. დარწმუნდით, რომ ეს ფაილი კომიტებულია, რათა თქვენმა გუნდმა ასევე მიიღოს სარგებელი რეესტრისგან.
ავთენტიკაცია (არასავალდებულო)#
ავთენტიკაცია არასავალდებულოა. ავთენტიკაციის გარეშე, შეგიძლიათ გამოიყენოთ რეესტრი შეზღუდვით 1,000 მოთხოვნა წუთში თითოეული IP მისამართისთვის. მაღალი ლიმიტის, 20,000 მოთხოვნა წუთში, მისაღებად, შეგიძლიათ გაიაროთ ავთენტიკაცია შემდეგი ბრძანების გაშვებით:
tuist registry login
ავთენტიკაცია მოითხოვს Tuist ანგარიშს და პროექტს.
დამოკიდებულებების ამოხსნა#
დამოკიდებულებების რეესტრიდან ამოსახსნელად source control-ის ნაცვლად, გააგრძელეთ კითხვა თქვენი პროექტის კონფიგურაციის შესაბამისად:
- Xcode project
- Generated project with the Xcode package integration
- Generated project with the XcodeProj-based package integration
- Swift package
CI-ზე რეესტრის დასაყენებლად, მიჰყევით ამ სახელმძღვანელოს: Continuous integration.
პაკეტის რეესტრის იდენტიფიკატორები#
როდესაც იყენებთ პაკეტის რეესტრის იდენტიფიკატორებს Package.swift ან Project.swift ფაილში, პაკეტის URL უნდა გადაიყვანოთ რეესტრის კონვენციის შესაბამისად. რეესტრის იდენტიფიკატორი ყოველთვის არის {organization}.{repository} ფორმატში. მაგალითად, https://github.com/pointfreeco/swift-composable-architecture პაკეტისთვის რეესტრის იდენტიფიკატორი იქნება pointfreeco.swift-composable-architecture.
იდენტიფიკატორი არ შეიძლება შეიცავდეს ერთზე მეტ წერტილს. თუ რეპოზიტორიის სახელი შეიცავს წერტილს, ის იცვლება underscore-ით. მაგალითად, https://github.com/groue/GRDB.swift პაკეტს ექნება რეესტრის იდენტიფიკატორი groue.GRDB_swift.