Wie SOLLTEN Sie statische Bibliotheken auf dem iPhone machen (und verwenden)?

8

AFAICS, jeder seriöse iPhone-Entwickler muss regelmäßig statische Bibliotheken erstellen und verwenden oder sich selbst zu fehlerhaften, schwer zu wartenden, unhandlichen Projekten verdammen. Aber Apple weigert sich, irgendwelche offiziellen Dokumente über den Prozess zur Verfügung zu stellen (nur Zirkelverweise: "nicht statisch, benutze dynamisch! ... wir erlauben nicht dynamisch auf dem iPhone, benutze statisch!")

Ich habe mehr als 6 Monate damit verbracht, damit zu experimentieren; Ich habe statische Bibliotheken in mehreren iPhone-Apps im App Store bereitgestellt. Ich habe ein nettes, funktionierendes System entwickelt, das auf Universal Binaries basiert ... das SOFORT BROKE wenn OS 3.x herauskam (LOL); ... Ich habe jetzt ein neues System, das mit allen Versionen des iPhone OS funktioniert.

Ich habe die verwandten Fragen zu StackOverflow zu diesem Thema gelesen und sie gehen entweder nicht weit genug für die vollständige Verwendung von statischen Bibliotheken oder erfordern die Verwendung eines oder mehrerer externer Kommandozeilen-Tools IDE. Was ist der Punkt in einer IDE, wenn Sie nicht alles darin arbeiten können?

Ich denke Ich habe einen Weg gefunden, der komplett in Xcode funktioniert. Aber ich bin sehr nervös, basierend auf vergangenen Erfahrungen ...

Ich würde gerne ein Feedback darüber hören, ob diesmal - endlich! - Durch Versuch und Irrtum habe ich es richtig gemacht.

ODER ... noch besser ... Ich würde gerne jemanden finden, der mir genau sagt, wie du es "machen" sollst, wie Apple es erwartet / will / was du von ihm verlangst es.

Der Prozess, den ich habe, ist ausreichend verschachtelt, dass ich ihn in zwei Blogposts geschrieben habe:

  1. Erster Beitrag: Grundannahmen und Probleme
  2. Zweiter Beitrag: Methodik und Schritt-für-Schritt-Prozess

BITTE BEACHTEN SIE: Es gibt viele Dinge, die ich nicht weiß über iPhone und Cocoa Programmierung, die ich sollte; Ich weiß, dass mit dem, was ich mache, viel falsch ist, aber ich würde es lieber teilen und vielleicht angeschrien werden, als still zu bleiben und nie erfahren, was ich vermassele.

Gedanken? Verbesserungen? Oder sogar ... bin ich ein kompletter Narr, und es gab einen viel, viel einfacheren Weg, den ich dumm genug war, um nicht in meiner ganzen Suche zu bemerken?

Vielen Dank im Voraus ...

    
Adam 14.10.2009, 00:05
quelle

4 Antworten

3

Sie können dieses Tutorial nützlich finden von jemandem, der dies kürzlich getan hat:

Ссылка

    
quelle
1

Etwas, was ich verpasst habe, weil ich keine Kategorien in meine eigenen statischen Bibliotheken aufgenommen habe:

Sie müssen das Linker-Flag "-ObjC" einfügen, wenn Sie Kategorien verwenden, sonst wird Ihre statische Bibliothek einige Teile "vermissen", wenn Sie versuchen, sie in Projekten zu verwenden.

Ich habe von Leuten gehört, die diese Flagge an sechs verschiedenen Orten platzieren, aber die, die schien zu funktionieren, war:

Im Bibliotheksprojekt (nicht App-Projekt, seltsam), gehen Sie zu Build-Einstellungen und fügen Sie eine benutzerdefinierte Einstellung hinzu:

OTHER_CFLAGS = -DObjC

... obwohl ich glaube, dass es stattdessen sein sollte:

Andere Linker-Flags = -ObjC

(NB: dies hat den Nebeneffekt, dass OTHER_CFLAGS automatisch innerhalb der GUI gesetzt wird)

Ich habe auch eine Menge Leute gehört, die behaupten, dass es in dem Anwendungsprojekt gehen sollte, aber sie alle haben ihre Projekte zusammengefügt und keine echten statischen Bibliotheken zusammengestellt, also vermute ich, dass sie einfach Glück hatten.

AUCH ...

XCode / Iphone OS 3.0 scheint einen Fehler zu haben, bei dem Sie auch das -all_load-Flag benötigen (verwenden Sie genau wie bei der -ObjC-Flagge oben). Es gibt einige StackOverflow-Fragen zur Verwendung des -all_load-Flags mit 3.0, also schau sie dir für weitere Informationen an - ich bin nicht wirklich damit vertraut.

    
Adam 01.11.2009 13:52
quelle
0

Und noch ein paar hilfreiche Ratschläge, wie man das Ergebnis zusammenfasst:

Können Sie verweisen Xib-Dateien aus statischen Bibliotheken auf dem iPhone?

NB: Es ist interessant, dass der Autor dieses Kommentars sagt, dass sie keine Bündel bekommen konnten, um mit statischen Bibliotheken zu arbeiten. Ich habe das auch versucht, als Frameworks nicht funktionierte, aber ich fand, dass Xcode / iPhone SDK fest codiert war, um zu verhindern, dass Sie sogar Bündel auf diese Weise verwenden :(. Ich dachte, es könnten nur meine Fehler sein, aber wenn andere habe es auch versucht und gescheitert, dann vielleicht auch nicht.

    
Adam 01.11.2009 13:59
quelle
0

Es tut mir leid, dass ich zu spät zum Spiel gekommen bin, aber ich hatte kürzlich Hilfe beim Erstellen einer statischen Bibliothek, damit Leute meine Datenstrukturbibliothek auf dem iPhone OS verwenden können. Sehen Sie Ссылка und checken Sie von Subversion aus, um zu sehen, wie ich aus erster Hand eine statische Bibliothek erstellt habe. Ich habe mir nicht die Mühe gemacht, eine Simulator-freundliche Version zu erstellen, aber sie funktioniert auf dem Gerät und war nicht besonders komplex.

    
Quinn Taylor 10.12.2009 18:22
quelle

Tags und Links