გადადით შინაარსზე

Swift Package Registry

დამოკიდებულებების რაოდენობის ზრდასთან ერთად იზრდება მათი ამოხსნისთვის საჭირო დროც. სხვა პაკეტების მენეჯერები, როგორიცაა CocoaPods ან npm, ცენტრალიზებულია, ხოლო Swift Package Manager — არა. ამის გამო, SwiftPM-მა თითოეული რეპოზიტორიის სრული კლონირებით უნდა ამოხსნას დამოკიდებულებები, რაც დროს მოითხოვს და უფრო მეტ მეხსიერებას იკავებს, ვიდრე ცენტრალიზებული მიდგომა. ამ პრობლემის გადასაჭრელად, Tuist გთავაზობთ Package Registry-ის იმპლემენტაციას, რათა ჩამოტვირთოთ მხოლოდ ის კომიტები, რომლებიც ნამდვილად გჭირდებათ. რეესტრში არსებული პაკეტები ეფუძნება Swift Package Index-ს — თუ პაკეტს იქ იპოვით, ის Tuist Registry-შიც ხელმისაწვდომია. გარდა ამისა, პაკეტები მსოფლიოს მასშტაბით ნაწილდება edge storage-ის გამოყენებით, რაც ამოხსნისას მინიმალურ დაყოვნებას უზრუნველყოფს.

გამოყენება#

რეესტრის დაყენების ორი გზა არსებობს:

ვარიანტი 1: ავტომატური დაყენება გენერაციის დროს (რეკომენდებული)#

თუ Tuist-ს იყენებთ თქვენი პროექტის გენერაციისთვის, შეგიძლიათ ჩართოთ რეესტრი registryEnabled პარამეტრის მითითებით თქვენს Tuist.swift კონფიგურაციაში:

swift
import ProjectDescription
let tuist = Tuist(
project: .tuist(
generationOptions: .options(
registryEnabled: true
)
)
)

ამ პარამეტრით, tuist generate ავტომატურად შექმნის რეესტრის კონფიგურაციის ფაილს თქვენს სამუშაო სივრცეში. ეს აღმოფხვრის tuist registry setup ცალკე გაშვების საჭიროებას.

Tip

registryEnabled ასევე აკონფიგურირებს რეესტრს იმ პროექტებისთვის, რომლებიც დამოკიდებულებებს აინტეგრირებენ Xcode-ის ნაგულისხმევი Swift Package Manager ინტეგრაციის მეშვეობით და არა Tuist-ის XcodeProj-ზე დაფუძნებული ინტეგრაციით. ის არ აკონფიგურირებს Xcode-ს იმ პაკეტების ამოსახსნელად, რომლებიც რეესტრიდან source control URL-ით არის განსაზღვრული. ამის გასაკეთებლად, გაუშვით tuist registry setup თითოეულ მანქანაზე ერთხელ, როგორც ეს აღწერილია Resolving source control packages-ში.

ვარიანტი 2: ხელით დაყენება#

რეესტრის ხელით დასაყენებლად, გაუშვით შემდეგი ბრძანება თქვენი პროექტის დირექტორიაში:

bash
tuist registry setup

ეს ბრძანება ქმნის რეესტრის კონფიგურაციის ფაილს, რომელიც რეესტრს თქვენი პროექტისთვის ააქტიურებს. დარწმუნდით, რომ ეს ფაილი კომიტებულია, რათა თქვენმა გუნდმა ასევე მიიღოს სარგებელი რეესტრისგან.

ავთენტიკაცია (არასავალდებულო)#

ავთენტიკაცია არასავალდებულოა. ავთენტიკაციის გარეშე, შეგიძლიათ გამოიყენოთ რეესტრი შეზღუდვით 1,000 მოთხოვნა წუთში თითოეული IP მისამართისთვის. მაღალი ლიმიტის, 20,000 მოთხოვნა წუთში, მისაღებად, შეგიძლიათ გაიაროთ ავთენტიკაცია შემდეგი ბრძანების გაშვებით:

bash
tuist registry login
Note

ავთენტიკაცია მოითხოვს Tuist ანგარიშს და პროექტს.

დამოკიდებულებების ამოხსნა#

დამოკიდებულებების რეესტრიდან ამოსახსნელად source control-ის ნაცვლად, გააგრძელეთ კითხვა თქვენი პროექტის კონფიგურაციის შესაბამისად:

CI-ზე რეესტრის დასაყენებლად, მიჰყევით ამ სახელმძღვანელოს: Continuous integration.

პაკეტის რეესტრის იდენტიფიკატორები#

როდესაც იყენებთ პაკეტის რეესტრის იდენტიფიკატორებს Package.swift ან Project.swift ფაილში, პაკეტის URL უნდა გადაიყვანოთ რეესტრის კონვენციის შესაბამისად. რეესტრის იდენტიფიკატორი ყოველთვის არის {organization}.{repository} ფორმატში. მაგალითად, https://github.com/pointfreeco/swift-composable-architecture პაკეტისთვის რეესტრის იდენტიფიკატორი იქნება pointfreeco.swift-composable-architecture.

Note

იდენტიფიკატორი არ შეიძლება შეიცავდეს ერთზე მეტ წერტილს. თუ რეპოზიტორიის სახელი შეიცავს წერტილს, ის იცვლება underscore-ით. მაგალითად, https://github.com/groue/GRDB.swift პაკეტს ექნება რეესტრის იდენტიფიკატორი groue.GRDB_swift.