2009-04-08 8 views
9

Wie lauten die Einstellungen in Xcode zum Entfernen von Symbolen für eine iPhone-Anwendung?Streifensymbole für iPhone-Anwendung

Ich verwende diese Einstellungen in Xcode aber immer noch Klassennamen und ihre Methoden in die ausführbare Datei mit einem binären Dateieditor.

Bereitstellung:

1) Deployment Postprocessing (markiert)

2) Streifen Debug-Symbole Während Copy (geprüft)

3) Streifen verlinkte Artikel (markiert)

4) Verwenden Sie Separate Streifen (überprüft)

Verknüpfung:

5) Dead Code Stripping (markiert)

GCC 4.0 - Codegenerierung

6) generieren Debug-Symbole (NICHT aktiviert)

Antwort

6

Objective-C-Klasse und Methode Informationen kann daher nicht entfernt werden - es ist notwendig für die Ausführung. Das Beste, was Sie tun können, ist eine Art Verschleierung, wenn Sie wollen.

3

Ich habe es getan.

Ich habe nur folgende drei Einstellungen überprüft, andere Einstellung ist irrelevant.

1) Deployment nachbearbeiten (geprüft)

3) Streifen verlinkte Artikel (geprüft)

4) Verwenden separater Streifen (geprüft)

enter image description here

Natürlich müssen Sie sollten Überprüfen Sie die Version "Distribution" im Schema-Editor. enter image description here

Dann sauber !!! und bauen.

I'v bestätigte auch, dass "Streifen" Befehl von Xcode genannt wird:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip /Users/xxx/Library/Developer/Xcode/DerivedData/aaaaa-dytaamkvztdwfreoqteyeijwqdcu/Build/Products/Distribution-iphoneos/aaaaa.app/aaaaa 

enter image description here

: Show log Navigators wählen Sie Erstellen .... Release, am Boden, ich Fortschritte Beschreibung gefunden

Schließlich überprüft I'v das Ergebnis durch "nm" Befehl zum Endprodukt Datei,

nm -a /Users/xxx/Library/Developer/Xcode/DerivedData/aaaaa-dytaamkvztdwfreoqteyeijwqdcu/Build/Products/Distribution-iphoneos/aaaaa.app/aaaaa

Der Funktionsname der aktuellen App ist wirklich entfernt.Wie folgende Funktionsname:

000b0a00 t _pj_ioqueue_create

00092ae4 t ___destroy_helper_block_200

00092af8 t ___ 68- [MyClass myMethod: param2] _block_invoke_21782

Hinweis : objective-C-Methode und Name der Eigenschaft string ar Es wird zwar immer noch als App-Datei erzeugt, aber das ist kein Symbolname für OS-Loader, sie sind nur Metadaten der Objective-C-Klasse.