2015-04-26 12 views

risposta

6

Affinché il quadro di lavorare all'interno di un parco giochi, il progetto che produce il quadro deve essere incluso nello spazio di lavoro per il vostro progetto Quindi, per fare questo lavoro è necessario attenersi alla seguente procedura:.

  1. Se il progetto non è all'interno di uno spazio di lavoro, creare un'area di lavoro per il progetto scegliendo File > Save As Workspace in Xcode
  2. Trascinare il file .xcodeproj dalla cartella Carthage/Checkouts nell'area di lavoro.
  3. Esegui l'azione di compilazione sul tuo obiettivo quadro.
+0

eh? ho bisogno di supporto per alcuni framework nel parco giochi, ma non nel progetto :) –

+0

Questi sono i passaggi necessari per farlo funzionare nel parco giochi. Che tu usi il framework nel tuo progetto dipende da te. – Niels

+0

Ho lo stesso problema. L'ho fatto. Ma non cambia. Dovrei creare un file di gioco? –

1

Ho risolto il problema copiando i framework creati nella Directory dei prodotti di costruzione, dove Playgrounds nell'area di lavoro cerca anche i framework. Nota: è anche necessario eseguire lipo e rimuovere le architetture inutilizzate dai binari FAT.

Vedere più qui: https://github.com/richardnees/CarthagePlaygrounds

1

Un parco giochi ha accesso a strutture esterne se fa parte di un'area di lavoro che costruisce un obiettivo configurato per accedere a tali strutture.

Se si desidera aggiungere un parco giochi a un progetto di carthage esistente, è sufficiente salvare il progetto come spazio di lavoro (File> Salva come area di lavoro ...), creare il target e il gioco è fatto.

Se si desidera distribuire un parco giochi con framework di terze parti, è necessario creare uno spazio di lavoro fittizio. Ecco un passo per passo per esempio un parco giochi con il quadro RxSwift:

  1. Creare un nuovo progetto Xcode di tipo Cross-platform> Altro> Vuoto. Chiamalo RxPlayground.
    Questo creerà questa struttura RxPlayground/RxPlayground.xcodeproj e aprirà un Xcode vuoto.

  2. Scarica RxSwift con Cartagine

    • Crea una Cartfile con questa linea: github "ReactiveX/RxSwift" "swift4.0"
    • Run Cartagine con carthage update --platform iOS.
  3. Aggiungi un parco giochi al progetto.

    • Fare clic su File> Nuovo> Parco giochi ...
    • Scegliere l'iOS> Modello vuoto e il nome Rx.playground
    • Fare clic destro sul nodo del progetto e scegliere “Aggiungi file alla RxPlayground”.
    • Selezionare Rx.parco giochi e aggiungilo.
  4. creare un'area di lavoro

    • Fare clic su File> Salva con nome dello spazio di lavoro ...
    • Salva come Rx.xcworkspace
  5. Copiare i quadri nella directory prodotti.

    • Chiudere il progetto e aprire la Rx.xcworkspace
    • Creare un cross-platform> Altro> aggregata. Nome è RxAggregate
    • Creare una fase di script Nuovo Run con il seguente contenuto:
 
    cp -rv "${SRCROOT}/Carthage/Build/iOS/" "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}" 

A questo punto, Xcode e il Finder simile a questa:

xcode

Notare che Carthage/e Cartfile.resolved appaiono quando si esegue Carthage, Senza di essi, il tuo parco giochi sarà solo pochi K.

Finder

Infine, costruire il progetto (⌘B). Ora è possibile utilizzare il quadro nel vostro parco giochi:

//: Playground - noun: a place where people can play 
import RxSwift 

_ = Observable<Void>.empty() 
    .subscribe(onCompleted: { 
     print("Completed") 
    }) 

A volte la prima volta che si genera (⌘B) Xcode non si accorge della nuova disciplina (sigh). Quello che faccio è cliccare sulla destinazione e tornare a un file sorgente, o riaprire il progetto. Non ho una spiegazione del perché questo accada.

+0

Prima di -1 per la complessità, nota che questo passo dopo passo da zero, e ti permette di usare i quadri binari aggiungono invece il progetto Xcode che costruisce il framework. – Jano