2016-02-16 10 views
6

Meine Schritte waren:Realm Swift OSX Cocoapods Beispiel-App abstürzt

1 In Xcode), erstelle ich eine neue Kommandozeilen-OSX Swift App und fügen Sie ihr Beispiel "Klasse Dog" Code, plus "Import RealmSwift" bei der oben.

2) Ich füge eine Poddatei mit zwei Zeilen, "use_frameworks!" und "pod" RealmSwift '"und dann pod install ausführen.

3) Ich öffne den Arbeitsbereich, kompiliere und starte. Ich bekomme diese Warnung:

Nicht swift-stdlib-Tool ausgeführt wird: EMBEDDED_CONTENT_CONTAINS_SWIFT aktiviert ist, aber die Produktart 'Kommandozeilen-Tool' ist nicht ein Wrapper-Typ.

Und dieser Absturz:

dyld: Bibliothek nicht geladen: @ rpath/libswiftAppKit.dylib von referenzierten:/Users/ys1382/Library/Developer/Xcode/DerivedData/testRealmApp-gxysfwfiirxwddbklmbolznecnld/Build /Products/Debug/RealmSwift.framework/Versions/A/RealmSwift Grund: Bild nicht

gefunden

So zeigt weit googeln die Warnung und Absturz in Zusammenhang stehen. Irgendwelche Vorschläge?

Ich bin mit OSX El Capitan, Xcode 7.2.1, Cocoapods 0.39.0

+1

Hmm, ich denke, es ist damit verwandt: https://github.com/realm/realm-cocoa/issues/975 In dieser Befehlszeile haben Dienstprogramme kein Bündel zu kopieren. Davon abgesehen suche ich, ob es einen Weg mit CocoaPods gibt. – TiM

+1

Gibt es eine empfohlene Möglichkeit, Realm in einer Befehlszeilenanwendung zu verwenden, wenn nicht mit CocoaPods? Oder wird Realm dieses Problem haben? –

Antwort

7

Tims Kommentar führte mich zu erfahren, als dies geschrieben wurde, ist es fast unmöglich ist, Frameworks Swift-Befehlszeile hinzufügen Apps. This blog post beschreibt einen Weg. Beginnend mit Schritt 1, heißt es:

  1. Ein Objective-C Kommandozeilen-Tool und die Suchpfade ändern. Nicht schnell. Sie können ein Swift-Framework für den Code erstellen, den Sie in Ihr Befehlszeilentool einfügen würden, aber das Tool selbst darf keinen Swift-Code kompilieren. Wenn Sie dies tun, wird der Linker durcheinander gebracht und doppelte Deklarationen der Swift-Bibliothek angezeigt (eine in der ausgelieferten .dylib, eine andere in das Befehlszeilentool eingebettet).

This presentation zeigt einen anderen Ansatz, ausgehend von einer Cocoa app erstellen und es dann in eine app Befehlszeilen zwingen, in 31 Schritten.

Es war an diesem Punkt, ich dachte, "mmaye mein Kommandozeilen-Tool könnte einige raffinierte Grafiken immerhin" und machte eine Cocoa OSX Swift Realm Cocoapod App stattdessen, die funktionierte.

+4

Swift-Frameworks nicht statisch zu verbinden, ist ein großer Schmerz. Einige beliebte OSS Swift CLI-Projekte erstellen eine Mac-App ohne GUI. Beispiele finden Sie in Carthage, SourceKitten und SwiftLint. – jpsim

+0

Die Dinge ändern sich. Statische Frameworks mit Swift funktionieren seit XCode 9. CocoaPods und Carthage fügen Unterstützung hinzu. Die Situation ist fließend; Wenn Sie dies über Google so finden, wie ich es getan habe, möchten Sie den aktuellen Status überprüfen. – Raphael