Erkennen und Vermeiden der Verwendung privater APIs in Bibliotheken von Drittanbietern

Jetzt, da Apple eine Art statische Analyse durchführt, um automatisch zu prüfen, ob private APIs verwendet werden, wurde eine Reihe von Personen aufgrund der Three20-Bibliothek abgefangen. Ich verwende eine andere Bibliothek von Drittanbietern (die ich selbst aus Code kompiliere) und möchte diese automatisch auf private API-Nutzung prüfen, bevor ich sie an Apple übermittle, damit ich diese Teile entfernen / neu schreiben kann.

Wenn ich rennenm Auf der ausführbaren Datei meiner Anwendung wird eine Liste mit Symbolen angezeigt, und dort werden Symbole angezeigt, die ich nicht verwende. Zum Beispiel sehe ich _AudioServicesPlaySystemSound, und wenn ich in XCode nach "AudioServicesPlaySystemSound" suche, erhalte ich keine Ergebnisse. Gibt es eine Möglichkeit, Aufrufe an private APIs automatisch zu unterscheiden? Ich stelle beispielsweise fest, dass Apple die Gewohnheit hat, sie mit einem ersten Unterstrich zu benennen.

Allerdings: Wenn ich einen Aufruf einer privaten API absichtlich einbinde, wird er in der Ausgabe von nicht angezeigtnm, aber es zeigt sich, wenn ich rennestrings auf der binären. Auf dieser Grundlage hatte ich die Idee, eine große Liste aller privaten API-Aufrufe in einer großen Tabelle zusammenzustellen und diese automatisch in der Zeichenfolgenausgabe zu suchen. Ich habe das noch nicht getan.

Hat jemand Tipps, wie man dieses Zeug automatisch fängt, damit ich den Überprüfungsprozess nur einmal durchlaufe?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage