webentwicklung-frage-antwort-db.com.de

Wie importiere ich Frameworks von Drittanbietern in Xcode Playground?

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.)

45
Nate Murray

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.

19
ikuramedia

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.

46
Rick Ballard

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.

2
iHunter

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):

  • Erstellen Sie ein aggregiertes Ziel
  • Fügen Sie eine Skriptphase hinzu, um die Frameworks von Carthage/Build/iOS/nach BUILT_PRODUCTS_DIR zu kopieren (im folgenden Beispiel verwende ich ein Swift Skript, aber Sie können auch bash, Ruby _ verwenden.python etc.)
  • Gesamtziel ausführen Jetzt können Sie die Frameworks in einen Spielplatz importieren

Darüber hinaus können Sie das Gesamtziel in Ihrer App nutzen:

  • Einbinden von Frameworks aus BUILT_PRODUCTS_DIR, nicht aus Carthage/Build/iOS /
  • Fügen Sie das Gesamtziel zum App-Schema hinzu, um die Frameworks nach einer Bereinigung wiederherzustellen.

Hier ist ein Beispiel für die Einrichtung eines Projekts wie oben: https://github.com/richardnees/CarthagePlaygrounds

1

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.

1
Shiyason

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 ...

0
Peng90