2009-08-19 10 views

Antwort

17

Ich habe Vorlagen für Xcode 4 erstellt, mit denen Sie universelle iOS-Frameworks erstellen können (die sowohl im Gerät als auch im Simulator funktionieren).

Sobald die Vorlagen installiert sind, wählen Sie einfach "Static iOS Framework", wenn Sie ein neues Projekt erstellen und es erledigt den Rest. Es funktioniert auch mit Komponententests.

https://github.com/kstenerud/iOS-Universal-Framework

+0

Vielen Dank für eine solche Lösung, es hat mir etwas Zeit erspart. –

+0

Ich habe auch diese Vorlage verwendet und es funktioniert sehr gut! – MortenHN

+0

Nicht unterstützt xcode4.5. – user501836

6

Die Frameworks in Objective C sind in der Regel nur C/ObjC-Code und eine Reihe von Klassen, nichts Besonderes. Daher können Sie Ihre eigenen erstellen, wenn Sie möchten, und diese dann beim Erstellen in Ihr Projekt einfügen. Das iPhone interessiert sich nicht für den Unterschied, es weiß nur, dass all dieser Code zusammen mit allem anderen in die App eingefügt wird.

Werfen Sie einen Blick auf die Framework Programming Guide auf der Apple-Website. Es wird dir helfen. Im Wesentlichen erstellen Sie ein Framework-Projekt in XCode und gehen dann von dort aus.

Zum "Schützen" Ihres Frameworks nehme ich an, dass Sie Ihren Code unlesbar machen. Ich bin mir nicht sicher, ob und wie Sie das tun können, aber vielleicht wird Apples Guide etwas dazu sagen.

2

Sie könnten eine statische Bibliothek als Binärdatei (d. H. Rudimentär "Schutz") für Dritte verfügbar machen, jedoch nicht als dynamische Bibliothek, da die Apple App Store-Richtlinie eine dynamische Verknüpfung verhindert.

14

Sie können eine statische Bibliothek erstellen. Dazu gibt es eine Option in der XCode-Projektauswahl. Sie müssen die kompilierte statische Bibliotheksdatei und die Headerdateien an Benutzer Ihrer Bibliothek verteilen. Ihre eigentlichen Implementierungsdateien (.m) müssen nicht verteilt werden.

GHUnit macht einen guten Job dabei - die Bibliotheken für Simulator und Gerät zusammenpacken - also empfehle ich, dieses Projekt zu betrachten. (Ich empfehle auch, diese Bibliothek für Komponententests zu verwenden :-)

+2

Als weiteres Beispiel wird die Cocoa Touch-Variante von Core Plot als statische Bibliothek kompiliert: http://code.google.com/p/core-plot/ –

0

Wenn Sie es tun, ist meiner Meinung nach JSON.framework ein großartiges Beispiel zu folgen. Den Quellcode zu verstecken/zu verschleiern ist eine andere Geschichte, und eine andere Frage ganz,

-2

Es ist unwahrscheinlich, dass dies funktioniert so, wie Sie es wollen, weil die anderen Entwickler nicht in der Lage sein werden, Ihr Framework zu verwenden. This StackOverflow Question erklärt warum.

+1

Sie gehen davon aus, dass ein Framework automatisch die Verwendung einer dynamischen Bibliothek impliziert, die nicht korrekt ist. Sie können ein Framework um eine statische (universelle) Bibliothek herum erstellen, daher funktioniert es wirklich perfekt. – Till

1

Schauen Sie sich an einem Beispiel für statische Bibliotheken gegeben bei this site

3

Ja, Sie können mit Cocoa Touch für den Einsatz Frameworks erstellen.

Allerdings gibt es diese Einschränkungen:

  1. hat eine statisch gelinkte libary, kein dynamisches Laden (dyld) für uns
  2. sollte sein werden, um eine kombinierte (Lipo) Bibliothek für i386 (Simulator), ARM6 und arm7
  3. Sie müssen ein Bundle-Projekt in ein Framework hacken
  4. sollten Sie (kleine und wenige) Bilder in die Bibliothek einbetten, so dass der Entwickler nicht mit Ressourcen rumhantieren muss, sondern nur es in seine zieht Projekt
  5. ... oder wenn Sie große und viele Bilder bauen ein Bündel mit diesen

I Führungen für diese Dinge auf meiner Seite haben.

1 + 2 = http://www.drobnik.com/touch/2010/04/universal-static-libraries/

Die anderen Links, die Sie Google, weil diese Seite nicht ich mehr als eine URL posten nicht lassen.

+1

Es können Sie mehr als eine URL veröffentlichen. – Brandon

+0

mit swift wir können nicht erstellen statische Bibliothek die einzige wäre ein Framework erstellen.so Framework ist im Grunde Sammlung von statischen und dynamischen Bibliotheken, aber dynamische Bibliothek sollten wir nicht verwenden, wie dynamische Verknüpfung ist gegen Apple rules.so Swift-Projekt wird gedreht in Rahmen muss es statische Bibliothek enthalten, die es ziemlich widerspricht. –

0

Wenn Sie ein neues Projekt zu erstellen, navigieren Sie zu iOS> Rahmen & Bibliothek> Cocoa Touch Framework ist es so einfach wie das. Wenn Sie erfolgreich kompiliert werden, wird .Framework unter Products-Ordner in XCode erstellt. Klicken Sie mit der rechten Maustaste, um sie im Finder anzuzeigen, und Sie können die Ausgabe finden.

Verwandte Themen