2016-02-16 7 views
6

I miei passi sono stati:Realm campione Swift OSX Cocoapods applicazione va in crash

1) In Xcode, creo una nuova riga di comando OSX Swift app e aggiungi il loro esempio di codice "classe Dog", oltre a "import RealmSwift" al superiore.

2) Aggiungo un Podfile con due righe, "use_frameworks!" e "pod 'RealmSwift'" e quindi eseguire pod install.

3) Apro l'area di lavoro, compilo ed eseguo. Ottengo questo avvertimento:

Non correre veloce-stdlib-strumento: EMBEDDED_CONTENT_CONTAINS_SWIFT è abilitato, ma il tipo di prodotto 'da riga di comando Tool' non è un tipo wrapper.

E questo incidente:

dyld: Biblioteca non caricato: @ rpath/libswiftAppKit.dylib referenziato da:/Users/ys1382/Library/Developer/Xcode/DerivedData/testRealmApp-gxysfwfiirxwddbklmbolznecnld/Costruire /Products/Debug/RealmSwift.framework/Versions/A/RealmSwift Motivo: immagine non trovata

Quindi googling lontano indica l'avvertimento e crash sono correlate. Eventuali suggerimenti?

sto usando OSX El Capitan, Xcode 7.2.1, Cocoapods 0.39.0

+1

Hmm, PENSO che sia correlato a questo: https://github.com/realm/realm-cocoa/issues/975 In quella riga di comando le utilità non hanno un pacchetto da copiare. Detto questo, sto cercando di capire se c'è un modo per aggirarlo con CocoaPods. – TiM

+1

Esiste un modo consigliato di utilizzare Realm in un'app della riga di comando, se non con CocoaPods? O il regno avrà quel problema a prescindere? –

risposta

7

commento di Tim mi ha portato a scoprire che, come di questa scrittura, è quasi impossibile per aggiungere quadri a Swift-riga di comando app. This blog post descrive un modo. A partire con la fase 1, si dice:

  1. creare uno strumento di riga di comando di Objective-C e cambiare i percorsi di ricerca. Non Swift. Puoi creare un framework Swift per il codice che avresti inserito nel tuo strumento da riga di comando, ma lo strumento stesso non deve compilare alcun codice Swift. In questo modo si confonderà il linker e si vedranno dichiarazioni duplicate della libreria Swift (una nel file spedito .dylib, un'altra incorporata nello strumento della riga di comando).

This presentation mostra un approccio diverso, iniziando con la creazione di un'applicazione Cocoa, e poi costringere in una riga di comando app, in 31 passaggi.

E 'stato a quel punto che ho pensato, "forse il mio strumento a riga di comando potrebbe usare una grafica davvero carina" e invece ha fatto un'app Cocoapode OSX Swift Realm Cocoapod, che ha funzionato.

+4

Non essere in grado di collegare staticamente i framework Swift è un grosso problema. Alcuni popolari progetti OSS Swift CLI creano un'app per Mac senza GUI. Vedi Carthage, SourceKitten e SwiftLint per gli esempi. – jpsim

+0

Le cose stanno cambiando. Quadri statici con Swift funzionano da XCode 9. CocoaPods e Carthage stanno aggiungendo supporto. La situazione è fluente; se trovi questo tramite Google come ho fatto, devi assolutamente controllare lo stato corrente. – Raphael