2016-09-26 10 views
23

Swift ve Xcode'ta yeniyim. MacOS Sierra ve Swift 3 çalıştırıyorum.Swift 3 paketini Swift paket yöneticisini kullanarak Xcode 8'e ekleme

Swift'deki ilk dosyam için basit bir komut satırı aracı geliştiriyorum. Kullanmak istediğim bir kaç Swift paketi var ve GitHub'daki her iki paket için kurulum talimatları, Swift paket yöneticisini sadece paket bildirim dosyasında bağımlılıklar olarak ekleyerek kullanacaklarını söylüyor.

Elde edemediğim şey, bunun Xcode'ta nasıl yapılacağıdır. Projemin kökünde bir 'package.swift' dosyası oluşturuyor muyum? Bunu yapmak ve daha sonra projeyi çalıştırmak, gerekli paketler projeme eklenmiş gibi görünmüyor.

Yanlış bir şey yapıyorum?

+0

Hangi paketleri yüklemeye çalışıyorsunuz? – Do2

+0

Özellikle https://github.com/onevcat/Rainbow – Garry

+0

Bunu kiosapodlar aracılığıyla yükleyin! Kurulum kılavuzu için cocoapods web sitesine bakın – Do2

cevap

40

Xcode ve SPM birlikte çalışabilir, ancak söyleyebileceğim kadarıyla komut satırında bir adım atmanız gerekir.

Xcode proje olarak aynı dizine paketiniz bildirim dosyasını koyun ve sonra paket yöneticisi bağımlılıkları aşağı çekin ve onlara başvurmak için .xcodeproj dosyasını yeniden yazacak swift package generate-xcodeproj

çağırmak.

O varolan herhangi bir kaynak korur fakat dizin yapısı SPM'ın tercih düzenlemesi için yeniden edilecektir: ben yoğun bir canlı projede bu test etmedim

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

N.B.; SPM belgelerinin hala WIP dediği gerçeği göz önünde bulundurulduğunda, lütfen yeni bir işlem yaptığınızdan emin olun.

+0

Teşekkürler. Bir çekicilik çalışır. Güvenlik tavsiyesi için +1! – Garry

+0

SPM'yi .xcodeproj' dosyasının içindeki dizin yapısını değiştirmemeye zorlamanın bir yolu var mı? Bütün dosyalarim 'Kaynaklar 'klasörünün içinde olmama neden olduguma degilim ama ayni zamanda navigasyonun içinde' Kaynaklar' klasörüne işaret eden gruplarim var ve onlarin daimi olarak kalmasini istiyorum. –

+1

Bu adımları gerçekleştiren herkes için bir not "hayır modülü bulunamadı" derleyici hatası alır. Sürüm 9.2'den itibaren Xcode bana önerilen iki proje değişikliği önerdi; bunlardan biri, Swift 3 @objc Inference'ı varsayılana ayarlıyordu. Bu değişiklikleri yaptıktan sonra hedefim, içe aktarma için harici bağımlılık modülünü tanıdı. – Airuop

0

swift package generate-xcodeproj'u çalıştırmaya ek olarak, kurulu paketleri kullanmadan önce projemi Xcode'da oluşturmak zorunda kaldım.

+0

Paket yöneticisi paketleri indirdikten sonra, bunları kullanmak için bunları kullanmanız gerektiğinden, toplam anlam ifade eder. – zirinisp