2016-09-26 18 views
23

Jestem nowym użytkownikiem Swift i Xcode. Używam macOS Sierra i Swift 3.Dodawanie pakietów Swift 3 do Xcode 8 przy użyciu menedżera pakietów Swift

Dla moich pierwszych wypraw w Swift opracowuję proste narzędzie wiersza poleceń. Jest kilka pakietów Swift, których chcę użyć, a instrukcje instalacji dla obu pakietów na GitHub mówią, że używają menedżera pakietów Swift, po prostu dodając je jako zależności w pliku manifestu pakietu.

Nie mogę się dowiedzieć, jak to zrobić w Xcode. Czy po prostu utworzę plik "package.swift" w katalogu głównym mojego projektu? Wykonanie tego, a następnie uruchomienie projektu nie działa, ponieważ wymagane pakiety nie są dodawane do mojego projektu.

Czy robię coś nie tak?

+0

Jakie pakiety próbujesz zainstalować? – Do2

+0

W szczególności https://github.com/onevcat/Rainbow – Garry

+0

Zainstaluj go za pomocą cocoapods! Zobacz stronę cocoapods, aby uzyskać poradnik instalacji – Do2

Odpowiedz

40

Xcode i SPM mogą współpracować, ale z tego co wiem, trzeba wykonać jeden krok w linii poleceń.

Połóż opakowanie plik manifestu w tym samym katalogu co projekcie Xcode, a następnie powołać swift package generate-xcodeproj

Menedżer pakietów będzie ciągnąć w dół swoje zależności i przerobić plik .xcodeproj odnieść się do nich.

To będzie zachować wszelkie istniejące źródła, ale struktura katalogów będą rekonfigurowane do SPM preferowany aranżacji:

PROJECT_DIR 
├── Sources 
│ └── ProjectName 
│  ├── YourCode.swift 
│  └── YourOtherCode.swift 
├── Dependencies 
│ └── SomeDependency 
│  ├── DependencyCode.swift 
│  └── OtherDependencyCode.swift 
└── Package.swift 

nb, nie testowałem tego w znacznym stopniu na żywo projektu; biorąc pod uwagę fakt, że dokumenty SPM wciąż mówią WIP, upewnij się, że wykonałeś ostatnie zatwierdzenie.

+0

Dzięki. Działa urok. +1 za porady dotyczące bezpieczeństwa! – Garry

+0

Czy istnieje sposób zmuszenia SPM do zmiany struktury katalogów wewnątrz pliku '.xcodeproj'? Nie jestem zbyt zdziwiony, że wszystkie moje pliki znajdują się w folderze 'Źródła', ale mam również grupy wewnątrz nawigatora, które wskazują folder' Źródła' i chcę, aby pozostały nienaruszone. –

+1

Uwaga dla każdego, kto wykonuje te czynności, otrzymuje komunikat o błędzie kompilatora "nie znaleziono modułu foo". Począwszy od wersji 9.2 Xcode dostarczył mi dwie zalecane zmiany projektu, z których jedną było ustawienie domyślnej opcji Swift 3 @objc. Po wykonaniu tych zmian mój cel rozpoznał zewnętrzny moduł zależności dla importu. – Airuop

0

Oprócz uruchamiania swift package generate-xcodeproj, musiałem zbudować swój projekt w Xcode, zanim mogłem użyć zainstalowanych pakietów.

+0

Ma sens, ponieważ menedżer pakietów pobiera pakiety, a następnie, aby je wykorzystać, musisz je skompilować. – zirinisp

Powiązane problemy