Es scheint keinen Code-Verschleierer für Objective-C zu geben. Aber nehmen wir für einen Moment an, dass es einen gibt.
Apple wird eine verschleierte App wahrscheinlich nicht ablehnen, solange sie nicht abstürzt. Die Hauptfrage ist: Was ist der Punkt der Verschleierung? Normalerweise möchten Sie Code verschleiern, um Ihr Wissen zu schützen. Wenn Ihr Programm beispielsweise einen Kopierschutz verwendet, den Sie einem potenziellen Cracker erschweren möchten, oder wenn Sie einen erweiterten Algorithmus verwenden, möchten Sie nicht, dass die Geschäftskonkurrenten dies tun in der Lage, es zu dekompilieren.
Der Kopierschutz ist unter iOS bereits erledigt. Obwohl durch Jailbreaking eine normale App kopiert und ausgeführt werden kann, würde ich sagen, dass die tatsächliche Anzahl der Benutzer, die dies tun, ziemlich gering ist (zumindest viel geringer als auf "normalen" Computern wie PC und Mac). Erwarten Sie, dass Piraterie ein so großes Problem darstellt, dass Sie es verschleiern müssen?
Wenn Sie wichtige Kenntnisse zum Schutz haben, kann sich eine Verschleierung lohnen. Die Verschleierung hat ihre Nachteile: Sie können Ihre verschleierte App nicht mehr debuggen. Absturzberichte sind nutzlos.
Vielleicht möchten Sie auch den Artikel Verschleierung von Kakao lesen .
Zurück zu der Tatsache, dass es keinen Verschleierer zu geben scheint: Was Sie tun können , ist dieser Trick: Angenommen, Sie haben einen Header wie diesen:
@interface MyClass : NSObject {
}
- (void)myMethod;
Sie könnten eine billige Verschleierung wie diese machen:
#ifndef DEBUG
#define MyClass aqwe
#define myMethod oikl
#endif
@interface MyClass : NSObject {
}
- (void)myMethod;
Auf diese Weise können Sie weiterhin aussagekräftige Symbole in Ihrer Quelle verwenden, aber der Compiler würde sie in "Müll" verwandeln, wenn er nicht zum Debuggen kompiliert wird.