Skip to content

Tłumaczenie 🌍

Możesz przetłumaczyć lub poprawić tłumaczenie tej strony.

Wnieś swój wkład

Wtyczki

Wtyczki są narzędziem do udostępniania i ponownego wykorzystywania artefaktów Tuist w wielu projektach. Obsługiwane są następujące artefakty:

Należy pamiętać, że wtyczki zostały zaprojektowane jako prosty sposób na rozszerzenie funkcjonalności Tuist. W związku z tym istnieją pewne ograniczenia, które należy wziąć pod uwagę:

  • Wtyczka nie może zależeć od innej wtyczki.
  • Wtyczka nie może zależeć od pakietów Swift innych firm
  • Wtyczka nie może używać pomocników opisu projektu z projektu, który używa wtyczki.

Jeśli potrzebujesz większej elastyczności, rozważ zasugerowanie funkcji dla narzędzia lub zbudowanie własnego rozwiązania w oparciu o strukturę generowania Tuist, TuistGenerator.

Typy wtyczek

Wtyczka pomocnicza opisu projektu

Wtyczka pomocnicza opisu projektu jest reprezentowana przez katalog zawierający plik manifestu Plugin.swift, który deklaruje nazwę wtyczki oraz katalog ProjectDescriptionHelpers zawierający pomocnicze pliki Swift.

bash
import ProjectDescription

let plugin = Plugin(name: "MyPlugin")
bash
.
├── ...
├── Plugin.swift
├── ProjectDescriptionHelpers
└── ...

Wtyczka szablonów dostępu do zasobów

Jeśli potrzebujesz udostępnić

syntetyzowane akcesory zasobów, możesz użyć tego typu wtyczki. Wtyczka jest

reprezentowana przez katalog zawierający plik manifestu Plugin.swift, który deklaruje nazwę wtyczki oraz katalog ResourceSynthesizers zawierający pliki szablonów akcesorów zasobów.

bash
import ProjectDescription

let plugin = Plugin(name: "MyPlugin")
bash
.
├── ...
├── Plugin.swift
├── ResourceSynthesizers
├───── Strings.stencil
├───── Plists.stencil
├───── CustomTemplate.stencil
└── ...

Nazwa szablonu to camel case wersja typu zasobu:

Typ zasobuNazwa pliku szablonu
StrunyStrings.stencil
AktywaAssets.stencil
Listy nieruchomościPlists.stencil
CzcionkiFonts.stencil
Dane podstawoweCoreData.stencil
Konstruktor interfejsówInterfaceBuilder.stencil
JSONJSON.stencil
YAMLYAML.stencil

Podczas definiowania syntezatorów zasobów w projekcie można określić nazwę wtyczki, aby użyć szablonów z wtyczki:

swift
let project = Project(resourceSynthesizers: [.strings(plugin: "MyPlugin")])

Wtyczka zadań deprecated

USUNIĘTO

Wtyczki zadań są przestarzałe. Sprawdź ten wpis na blogu, jeśli szukasz rozwiązania automatyzacji dla swojego projektu.

Zadania to $PATH-eksponowane pliki wykonywalne, które można wywołać za pomocą polecenia tuist, jeśli są zgodne z konwencją nazewnictwa tuist-. We wcześniejszych wersjach Tuist zapewniał pewne słabe konwencje i narzędzia pod tuist plugin do build, run, test i archive zadań reprezentowanych przez pliki wykonywalne w pakietach Swift, ale przestaliśmy korzystać z tej funkcji, ponieważ zwiększa ona obciążenie związane z utrzymaniem i złożoność narzędzia.

Jeśli korzystasz z Tuist do dystrybucji zadań, zalecamy zbudowanie swojego

  • Możesz nadal korzystać z ProjectAutomation.xcframework dystrybuowanego z każdą wersją Tuist, aby mieć dostęp do grafu projektu z poziomu logiki za pomocą let graph = try Tuist.graph(). Polecenie wykorzystuje proces systemowy do uruchomienia polecenia tuist i zwraca reprezentację grafu projektu w pamięci.
  • Aby dystrybuować zadania, zalecamy dołączenie grubego pliku binarnego obsługującego arm64 i x86_64 w wydaniach GitHub i użycie Mise jako narzędzia instalacyjnego. Aby poinstruować Mise, jak zainstalować narzędzie, potrzebne będzie repozytorium wtyczek. Możesz użyć Tuist's jako odniesienia.
  • Jeśli nazwiesz swoje narzędzie tuist-{xxx} i użytkownicy mogą je zainstalować uruchamiając mise install, mogą je uruchomić bezpośrednio lub poprzez tuist xxx.

PRZYSZŁOŚĆ PROJEKTOWANIA

Planujemy skonsolidować modele ProjectAutomation i XcodeGraph w jeden, kompatybilny wstecz framework, który udostępni użytkownikowi cały graf projektu. Co więcej, wyodrębnimy logikę generowania do nowej warstwy, XcodeGraph, której można również używać z własnego CLI. Pomyśl o tym jak o budowaniu własnego Tuist.

Korzystanie z wtyczek

Aby użyć wtyczki, należy dodać ją do pliku manifestu projektu

`Tuist.swift`:
swift
import ProjectDescription


let tuist = Tuist(
    project: .tuist(plugins: [
        .local(path: "/Plugins/MyPlugin")
    ])
)

Jeśli chcesz ponownie użyć wtyczki w projektach, które znajdują się w różnych repozytoriach, możesz przesłać wtyczkę do repozytorium Git i odwołać się do niej w pliku Tuist.swift:

swift
import ProjectDescription


let tuist = Tuist(
    project: .tuist(plugins: [
        .git(url: "https://url/to/plugin.git", tag: "1.0.0"),
        .git(url: "https://url/to/plugin.git", sha: "e34c5ba")
    ])
)

Po dodaniu wtyczek, tuist install pobierze wtyczki z globalnego katalogu cache.

BRAK ROZWIĄZANIA WERSJI

Jak być może zauważyłeś, nie zapewniamy rozdzielczości wersji dla wtyczek. Zalecamy używanie tagów Git lub SHA, aby zapewnić powtarzalność.

OPIS PROJEKTU HELPERS PLUGINS

W przypadku korzystania z wtyczki pomocników opisu projektu, nazwa modułu zawierającego pomocników jest nazwą wtyczki

swift
import ProjectDescription
import MyTuistPlugin
let project = Project.app(name: "MyCoolApp", platform: .iOS)

Released under the MIT License.