2011-01-06 5 views
2

Mögliche Duplizieren:
Objective-C Code ObfuscationObfuscate Objective-C-Code für ein wiederverwendbares iOS-Paket

Ich versuche, zusammen ein iOS-Paket zu setzen, die in mehreren Anwendungen wiederverwendet werden können. Ich würde gerne in der Lage sein, es für andere zu bündeln, um es einfach anzuschließen und zu verwenden, und ich möchte den Code verschleiern, so dass niemand ihn lesen kann.

Was würden Sie zwischen dem Erstellen eines Frameworks, einer statischen Bibliothek oder einer anderen Lösung empfehlen, um dies zu erreichen und warum?

Antwort

1

Ein Framework ist der Standard-Cocoa-Ansatz für gemeinsam genutzten Code. Sie können ein Framework als eine kompilierte Codebibliothek und eine Sammlung öffentlicher Header verteilen, ohne dass der zugrunde liegende Objective-C-Quellcode sichtbar wird. Natürlich könnte ein engagierter Hacker immer noch den Maschinencode lesen, aber das wäre ein großes Unterfangen und wahrscheinlich nicht die Zeit wert, die sie dafür ausgeben müssten.

Wenn Sie wirklich besorgt über sensiblen Code sind, könnten Sie einen Internet-basierten Dienst in Betracht ziehen, in dem Ihre Bibliothek zu einem Remote-Server unter Ihrer Kontrolle zu einigen Geschäftslogik aufrufen. Dieser Ansatz ist wesentlich aufwendiger und bietet Ihren Kunden weniger Flexibilität.

+1

Da dies mit 'ios' markiert ist, kann er kein Framework verwenden. – bbum

+1

@bbum: Es klingt für mich so, als würde er über ein Framework sprechen, das andere Entwickler beim Kompilieren herunterladen und mit ihren eigenen Apps verknüpfen könnten, kein freigegebenes Framework, das zur Laufzeit auf dem Gerät installiert und aufgerufen wird. –

+0

Aber Leute können immer noch sein Framework debuggen und alle Quellen sehen, da IOS nur statische Bibliotheken erlaubt, die in Frameworks und nicht in dynamischen Bibliotheken gebündelt sind - das bedeutet, dass, wenn ich mich irre - Ihre Antwort nicht die richtige ist - bitte korrigieren Sie mich Ich habe mich geirrt . –

6

Wenn Sie für iOS sind zu verteilen, haben Sie zwei Möglichkeiten:

  1. Verteilen eine vorkompilierte Binär-und Header
  2. Verteilen Sie die Quelle

Da Sie fragen, über Sachen zu verstecken, Ich denke nicht, dass # 2 das ist, wonach Sie suchen.

Wie für # 1, das Beste, was Sie tun können, ist nur nicht sagen, 3rd Party Benutzer über mehr Zeug. Sie können immer noch die Laufzeit verwenden, um Methoden und Eigenschaften und Instanzvariablen zu finden, usw. Wenn Sie alles in C-land machen (dh keine Objective-C-Klassen), können sie immer noch Dinge wie otool verwenden Symbole ablegen. Kurz

In:

Es ist wahrscheinlich nicht ein Versuch wert, um Ihren Code zu "verschleiern". Erzählen Sie ihnen einfach von den Dingen, die sie wissen müssen, geben Sie ihnen dann eine .a-Datei und die Header, die sie brauchen.