Jak stworzyć własnego Pod’a?

Piotr Łopata on 19 lipca 2018

Każdy, kto ma styczność z programowaniem na iOS’a bądź macOS, na pewno spotkał się z określeniem CocoaPods. Jest to tzw. manager zależności (dependency manager), który w prosty i przyjemny sposób pozwala na dodawanie bibliotek do naszego projektu. Jest on na tyle popularny, że prawie każda publiczna biblioteka jest dostępna przez wykorzystanie CocoaPods. Często tworzymy własne komponenty, rozszerzenia, które wykorzystujemy w wielu projektach. Utrzymanie takich fizycznych plików jest bardzo nieefektywne. Ponadto, osoby, które korzystają z tych samych komponentów, często nanoszą poprawki, przez co nie wiadomo kto ma najbardziej aktualną wersję kodu (a to zwiększa ryzyko występowania potencjalnych błędów w aplikacji). Rozwiązaniem może być stworzenie własnego Pod’a, który wprowadzi porządek oraz automatyzację (po wpisaniu jednej linijki kodu wszystkie nasze rozszerzenia dodane do Pod’a będą umieszczone w naszym projekcie).

Oto instrukcja, jak stworzyć własny Pod’a krok po kroku:

  1. Wygenerowanie szablonu

Do stworzenia szablonu Pod’a, CocoaPods przygotowało gotowy mechanizm, który uruchamiamy następującą komendą:

Po pomyślnej konfiguracji automatycznie powinien otworzyć się projekt zawierający naszego Pod’a.

  1. Konfiguracja .podspec

Następnie należy uzupełnić informację dotyczące naszego modułu:

  • Konfiguracja git’a – najpierw zastanawiamy się nad stopniem dostępności naszego Pod’a dla innych programistów i określamy, czy nasze repozytorium będzie publiczne, czy prywatne. Po stworzeniu repozytorium uzupełniamy adresy w pliku .podspec oraz dodajemy nasz remote do git’a stworzonego w katalogu głównym.
  • Wersja języka – w naszej konfiguracji systemu domyślnie został wybrany Swift 4.1, więc dodajemy atrybut swift_version, oraz uzupełniamy summary.
  • Tak powinna wyglądać zawartość naszego pliku .podspec

  • Walidacja pliku .podspec:
    • aby sprawdzić, czy wszystko dobrze skonfigurowaliśmy, wpisujemy komendę

    • jeżeli chcemy zrobić nasz moduł publiczny, nie może on zawierać żadnych ostrzeżeń ze strony tego walidatora (Xcode’owe mogą występować).
  1. Rozszerzenia

Najważniejszym elementem procesu jest dodanie naszych rozszerzeń do projektu. Pamiętajmy, że ścieżka do naszych plików źródłowych w pliku .podspec domyślnie ustawiona jest na katalog Classes (pliki dodane w innym miejscu nie będą dostępne w naszym projekcie po instalacji Pod’a. Ścieżkę można edytować w pliku .podspec w polu source_files).

Po dodaniu naszego pliku struktura katalogów w projekcie powinna wyglądać następująco:

Następnie dodajemy nasz kod:

  1. Tworzenie wersji naszego Pod’a

Upewniamy się, że wszystkie nasze zmiany zostały umieszczone na naszym repozytorium poprzez wpisanie następujących komend:

Następnie tworzymy tag z aktualnym numerem wersji naszego modułu.

Publikacja Pod’a na CocoaPods.org (tylko publiczne repozytorium):

Jeżeli mamy problem z publikacją Pod’a, upewnijmy się, że mamy dobrze skonfigurowaną sesję

Nasza strona z repozytorium zawierającym Pod’a powinna wyglądać następująco:

  1. Instalacja Pod’a

Jeżeli nie mamy jeszcze skonfigurowanych Pod’ów w projekcie, możemy to zrobić, wpisując komendę:

w głównym katalogu zawierającym nasz plik projektowy.

Przykładowa treść pliku Podfile:

Po konfiguracji możemy dodać linijkę, która będzie odpowiedzialna za dodanie naszego Pod’a do projektu.

Jeżeli jest on prywatny, musimy dodać adres naszego repozytorium

Następnie w terminalu wpisujemy

Po pomyślnej instalacji Pod jest dostępny w naszym projekcie 🙂

Pamiętajmy, że używając CocoaPods, projekt uruchamiamy plikiem .xcworkspace –

jeżeli użyjemy .xcodeproj, nasz projekt się nie zbuduje!

Teraz wystarczy zaimportować nasz moduł:

i możemy go używać:

output:

Gotowe! Twój Pod jest odpowiednio stworzony i w pełni skonfigurowany.

Środowisko:

CocoaPods – 1.4.0
Xcode 9.4.1
Swift 4.1
macOS 10.13.5

Tagi: , , , , ,

Przeczytaj również

Jedna myśl na temat “Jak stworzyć własnego Pod’a?”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *