So erstellen Sie eine universelle statische ios-Bibliothek

8

Ich versuche eine statische Bibliothek zu erstellen, die ich sowohl mit ios3.x als auch mit ios4.x verwenden kann. Ich kann eine statische Bibliothek mit ios3.0 erstellen, die mit einem anderen Projekt in ios3.0 funktioniert, aber nicht in ios4 kompiliert wird. Das gleiche gilt von ios4 zu ios3.

So erstellen Sie Folgendes neu:

  1. Öffnen Sie XCode 3.2.4 und starten Sie ein neues Projekt, das eine Cocoa Touch Static Library namens Library4
  2. ist
  3. Klicken Sie auf den Klassenordner und erstellen Sie einen neuen UIViewController namens "TestViewController"
  4. Klicken Sie mit der rechten Maustaste auf den Frameworks-Ordner, fügen Sie das vorhandene Framework hinzu und wählen Sie UIKit
  5. Erweitern Sie im linken Bereich Ziele, klicken Sie mit der rechten Maustaste auf das Ziel meiner Bibliothek und klicken Sie auf "Informationen". Wechseln Sie zu allen Konfigurationen, Ändern Sie den Basis-SDK in iPhone Simulator 4.0, ändern Sie das IOS-Implementierungsziel in ios3.0
  6. Klicken Sie auf den Ordner Verknüpfungsbibliothek mit Binärdateien. Ändern Sie im rechten Fensterbereich die Rollen von beiden in "Schwach"
  7. Erstellen Sie die Bibliothek
  8. Öffnen Sie Xcode 3.2.2 und starten Sie eine neue View-basierte Anwendung namens Library4Test
  9. Kopieren Sie TestViewController.h in den Klassenordner
  10. Kopieren Sie die Datei libLibrary4.a in den Frameworks-Ordner. Es wird automatisch der Linker-Phase des Ziels hinzugefügt
  11. Klicken Sie mit der rechten Maustaste auf das Target Library4Test, und klicken Sie auf Informationen abrufen. Fügen Sie in anderen Linker-Flags "-ObjC" und "-all_load"
  12. hinzu
  13. Fügen Sie im App-Delegaten-Header Import "TestViewController.h"
  14. hinzu
  15. Fügen Sie in der App-Delegate-Header-Anwendung die Methode didFinishLaunchingWithOptions

    hinzu

    TestViewController * test = [TestViewController alloc] init;

  16. Kompilieren Sie mit dem ios3.0 Simulator

Wenn ich kompiliere, bekomme ich:

%Vor%     
Julie 23.10.2010, 23:31
quelle

3 Antworten

2

Nicht genau, aber es sieht aus wie ein Verknüpfungsproblem (all diese .o Dinge). So richte ich meine statische iOS-Bibliothek ein. Es ist eine sehr einfache Sache, aber es funktioniert.

  1. Starten Sie ein neues Projekt und wählen Sie iOS Libarary & gt; & gt; Cocoa Touch Statische Bibliothek
  2. Fügen Sie einige Klassen hinzu. Meins sind Kategorien in UIView, die bessere Beschreibungen für die Verwendung in NSLog geben.
  3. Wählen Sie das Ziel und stellen Sie sicher, dass die Rolle jeder Klasse auf einen geeigneten Wert gesetzt ist. Bei meinen Kategorien sollte das "öffentlich" sein.
  4. Doppelklicken Sie auf das Ziel und wählen Sie die Registerkarte Erstellen.
  5. Wählen Sie die Konfigurationsfreigabe und legen Sie die folgenden Build-Einstellungen fest:
  6. Deployment Location YES (überprüfen)
    Deployment Postprocessing YES (überprüfen)
    Installationsaufbau Produktstandort /

Erstellen Sie Ihre statische Bibliothek. Standardmäßig wird in / usr / local / lib

gebaut

Erstellen Sie jetzt einen symbolischen Link für den einfachen Zugriff auf Ihre neue Bibliothek. Eine einfache Möglichkeit besteht darin, Ihr Terminal zu öffnen und die folgenden Befehle auszuführen:

%Vor%

Öffnen Sie nun das Xcode-Projekt, in dem Sie Ihre Bibliothek verwenden möchten. Erstellen Sie eine Gruppe mit dem Namen Bibliotheken oder ähnliches, klicken Sie bei gedrückter Ctrl-Taste und verwenden Sie 'Vorhandene Dateien hinzufügen', um die Bibliothek hinzuzufügen. Es wird so etwas wie libYourLibrary.a genannt Wenn Sie Ihr Projekt ausführen, erhalten Sie einen Verknüpfungsfehler. Doppelklicken Sie also auf die Datei project , gehen Sie zu Build & gt; & gt; Alle Konfigurationen und fügen Sie der Einstellung "Library Search Paths" den folgenden Wert hinzu: ~ / lib

    
Elise van Looij 29.11.2010 11:17
quelle
0

Wie erstellt man einfach ein Ziel von SDK? Ich erstelle eine statische Bibliothek für iOS-OSx und die Prozedur war viel einfacher.

  1. Erstellen Sie das Projekt (aus der iOS-Vorlage "Cocoa touch Static Library")
  2. füge die Quelldateien hinzu
  3. füge ein Ziel für sdk hinzu

Natürlich muss ich etwas hinzufügen

%Vor%

zum Code. Sie können Ihre eigenen Bedingungen hinzufügen.

    
Bruno Berisso 29.11.2010 12:36
quelle
0

Die Compilerfehler treten auf, weil Sie keine Verbindung mit den richtigen Systemframeworks hergestellt haben. Alle dunkelroten Symbole stammen aus Foundation.framework, UIKit.framework und libobjc.dylib.

Statische Bibliotheken ziehen nicht automatisch die erforderlichen Frameworks, mit denen sie verlinkt werden müssen. Wenn Sie sie verwenden, müssen Sie sie daher selbst zum Projekt hinzufügen.

    
Scott K. 14.06.2011 20:08
quelle