Wie importiere ich Frameworks von Drittanbietern in Xcode Playground?
Swift Playground hat offensichtlich einen Framework-Importmechanismus, da wir Cocoa
, SpriteKit
importieren können, und in einem OSX-Playground scheint XCPlayground
(XCPlayground
in iOS zu fehlen, seltsamerweise)
Am liebsten würde ich Code von meinem Spielplatz verstecken und ein minimales Beispiel zeigen. Überlegungen zum Laden eines Frameworks in Swift playground?
Siehe auch:
(Diese Frage ist anders, da die Anforderung darin besteht, ein Framework in Playground zu verwenden, anstatt nur normale Swift
-Dateien.)
Bearbeitet: Ab Beta5 wird dies jetzt unterstützt, wenn der Spielplatz Teil des Arbeitsbereichs ist, der das Framework als Ziel erstellt. Es gibt mehr Details auf der Apple dev Foren Seite, aber hoffentlich wird @Rick Ballard sie hier zu seiner Antwort hinzufügen und das sollte die endgültige Antwort auf diese Frage sein.
Mach das unten nicht mehr!
Kurzfristig gibt es keine unterstützte Lösung. Wenn Sie ein Modul/Framework erstellen, können Sie es in die SDKs kopieren. System/Library/Frameworks
Verzeichnis und dann nur import <#Module#>
genauso wie Sie System-Frameworks importieren.
Für einen OS X-Spielplatz: /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks
Und für iOS: /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/System/Library/Frameworks/
Aber bevor Sie das tun ... gehen Sie ein Radar, wie @Rick in seiner Antwort sagt.
Derzeit gibt es keine unterstützte Möglichkeit, Ihr eigenes Framework oder Ihren eigenen App-Code in einen Spielplatz zu importieren, es sei denn, Sie fügen ihn in den Spielplatz-Editor ein. Wir sind uns bewusst, dass dies eine sehr wünschenswerte Funktionalität ist, aber wie immer ermutigen wir die Leute, auf bugreport.Apple.com mit bugreporter abzustimmen
Wenn Sie nur versuchen, den Code für die Anzeige in einem Beispiel auszublenden, ist das Klappen des Codes im Editor möglicherweise ausreichend.
Es ist jetzt möglich, eigene Frameworks in einen Spielplatz zu importieren. Auf diese Weise können Sie Code für Ihre Anwendungen und Spielplätze freigeben, die beide Ihre Frameworks importieren können. Dazu muss sich Ihr Spielplatz im selben Arbeitsbereich befinden wie das Projekt, das Ihr Framework erstellt. Sie müssen Ihr Framework bereits erstellt haben. Wenn es sich um ein iOS-Framework handelt, muss es für ein 64-Bit-Ausführungsziel (z. B. iPhone 5s) erstellt werden. Sie müssen über ein aktives Schema verfügen, das mindestens ein Ziel erstellt (der Erstellungsort dieses Ziels wird im Framework-Suchpfad für den Spielplatz verwendet). Ihre Voreinstellung "Standort erstellen" (in den erweiterten Einstellungen für "Standorte") sollte nicht auf "Legacy" gesetzt werden. Wenn Ihr Framework kein Swift Framework ist, muss die Build-Einstellung "Defines Module" auf "Yes" gesetzt werden. Wenn alle diese Bedingungen erfüllt sind, funktioniert der Import Ihres Frameworks auf einem Spielplatz.
Ich habe ein Tutorial geschrieben, das den Import von benutzerdefinierten Frameworks in Beta 6 behandelt
Kurz gesagt, wenn Sie Ihren Spielplatz und Ihr Framework entweder im selben Projekt oder im selben Arbeitsbereich haben und Ihr Framework für 64-Bit-Versionen (auch für iOS) erstellt wurde, passen sie sehr gut zusammen.
Ich habe es gelöst, indem ich die erstellten Frameworks in das Built Products Directory kopiert habe, wo Playgrounds im Arbeitsbereich auch nach Frameworks sucht. Hinweis: Sie müssen auch lipo ausführen und nicht verwendete Architekturen von den FAT-Binärdateien entfernen.
Die erforderlichen Schritte (auf den Punkt gebracht):
Darüber hinaus können Sie das Gesamtziel in Ihrer App nutzen:
Hier ist ein Beispiel für die Einrichtung eines Projekts wie oben: https://github.com/richardnees/CarthagePlaygrounds
quelle: http://qiita.com/ryokosuge/items/2551cd4faa9dca324342
Wenn es jemanden gibt, der nach dem Lesen der akzeptierten Antwort immer noch Schwierigkeiten hat, die Vorgehensweise zu verstehen, kann dies hilfreich sein.
Es ist jedoch nicht in Englisch, daher werde ich hier erklären:
Karthago benutzen:
1: Richten Sie Ihre Cartfile im Stammverzeichnis des Projekts ein, fügen Sie Ihre Bibliotheken hinzu und führen Sie Folgendes aus:
carthage update --platform iOS --use-submodules
2: Stellen Sie sicher, dass Ihr Projekt als Workspace
gespeichert ist. In der Xcode-Menüleiste: File
> Save As Workspace
. Fahren Sie Xcode herunter und öffnen Sie es erneut aus der neuen .xcworkspace
- Datei.
3: Fügen Sie die Datei .xcodeproj
Ihrer Bibliothek in Ihren Arbeitsbereich ein: File
> Add files to "your_workspace_name"
. Dann finden Sie es in: ${SRCROOT}/Carthage/Checkouts/your_library_name/your_library_name.xcodeproj
4: Finden Sie den Abschnitt Embedded Binaries
Und Linked Frameworks and Libraries
In den allgemeinen Einstellungen Ihres Projekts. Fügen Sie beiden die Datei .framework
Ihrer Bibliothek hinzu.
5: Säubern (⇧ + ⌘ + K) und bauen (⌘ + B).
6: Importiere deine Bibliothek auf den Spielplatz.
So wie Sie Objective-C-Klassen in Swift Code verwenden, können Sie Bibliotheken/Klassen von Drittanbietern in Ihr Projekt importieren, und Xcode fragt Sie, ob Sie eine <#YourProjectName>-Bridging-Header
- Headerdatei erstellen möchten. Wählen Sie "Ja" und importieren Sie alle Header-Dateien, die Sie in dieser Datei benötigen. Danach können Sie auf Ihrem Spielplatz einfach import <#YourProjectName>-Bridging-Header
Nach import UIKit
Eingeben und die Klassen verwenden, die Sie in Ihre importiert haben Projekt.
Update: das ist eigentlich falsch. Bitte beachten Sie meinen Kommentar unten. Entschuldigung für die Verwirrung ...