Wie verlinke ich verschiedene vorkompilierte Bibliotheken für verschiedene Build-Profile in XCode für iPhone?

7

Mein Kunde stellt mir zwei vorkompilierte Bibliotheken zur Verfügung, blah-device.a und blah-simulator.a. Wie kann ich xcode mitteilen, blah-device.a im Gerätekompilierungsmodus und Simulator im Simulatorkompilierungsmodus zu verwenden?

Mein Kunde gibt mir diese Anweisungen

  
  1. Öffnen Sie die Gruppe "Ziele" (klicken Sie im Bereich "Gruppen & amp; Dateien") mit der rechten Maustaste auf   Projektsymbol, wählen Sie dann Hinzufügen & gt;   Vorhandene Frameworks.
  2.   
  3. Klicken Sie im Abschnitt Verknüpfte Bibliotheken auf das Symbol Bibliotheken hinzufügen (+),   Klicken Sie dann auf Andere hinzufügen.
  4.   
  5. Wählen Sie entweder blah-device.a (für die direkte Entwicklung auf dem iPhone)   Gerät) oder blah-simulator.a (für   Entwicklung auf dem iPhone Simulator),   Klicken Sie dann auf Hinzufügen.
  6.   

Ich habe bereits die Header-Datei dorthin kopiert, aber diese Anweisungen machen das Erstellen mit verschiedenen Profilen nicht einfach.

Wie bekomme ich Xcode, um blah-device.a beim Erstellen mit den DEVICE-Profilen und blah-simulator.a beim Erstellen mit den SIMULATOR-Profilen zu verbinden?

Jede Hilfe wird sehr geschätzt.

    
CVertex 15.11.2009, 06:36
quelle

4 Antworten

5

Es gibt einen einfacheren Weg, dies zu tun. Sie können die "Bibliothekssuchpfade" unter einem Ziel duplizieren und für jede eine andere Architektur festlegen. Sie können dann einen anderen Pfad für Simulator und Geräte festlegen.

    
Kamchatka 16.04.2011, 21:10
quelle
14

Zukünftige Referenz: Eine gute Möglichkeit, mit solchen Situationen umzugehen, besteht darin, die verschiedenen .a-Architektur-Architekturen zu einem einzigen zusammenzufassen, den Sie in XCode einfügen können. Sie können dies mit dem Befehlszeilenprogramm lipo tun:

lipo libx.a liby.a -create -output libz.a

Wenn libx.a armv6 und armv7 ist und liby.a beispielsweise i386 ist, wird die resultierende Bibliothek libz.a armv6, armv7 und i386 sein.

Sie können eine .a-Datei auch über lipo -info einsehen.

Hoffe, das hilft. :)

    
Kevin Depue 14.07.2011 20:35
quelle
2

Sie können verschiedene Verbindungspfade für verschiedene Bibliotheken verwenden

    
dollar2048 14.08.2014 07:20
quelle
1

Der einfachste Weg wäre, zwei separate Ziele zu erstellen, indem du dein bestehendes duplizierst. Nenne ein "Foo Device" und den anderen "Foo Simulator". Klicken Sie dann mit der rechten Maustaste auf das blah-device.a in XCode, wählen Sie die Registerkarte Targets und stellen Sie sicher, dass das Ziel "Foo Device" aktiviert und das Ziel "Foo Simulator" deaktiviert ist.

Wiederholen Sie dies für balah-simulator.a, aber dieses Mal ist das Ziel "Foo Device" auf OFF und das Ziel "Foo Simulator" ist auf ON gesetzt.

Wenn Sie nun einen Simulator erstellen wollen, wählen Sie den Simulator aus dem Active SDK-Popup UND den "Foo Simulator" aus dem Ziel-Popup. Zum Gerätetesten wählen Sie Device UND das Ziel "Foo Device".

    
Ramin 15.11.2009 09:12
quelle

Tags und Links