2012-06-14 23 views
5

Planeo desarrollar una aplicación para iOS y quiero usar HTML5, CSS y Javascript. La aplicación final debe implementarse como una aplicación nativa usando Xcode y UIWebView.Xcode: ¿ocultar/proteger los archivos de recursos en la aplicación final de iOS?

¿Puedo ocultar o proteger mis archivos html en la aplicación final? Tengo que poner los archivos en la carpeta llamada "Archivos de soporte" en Xcode. Por lo tanto, todos pueden ver los archivos sin formato después de comprar la aplicación extrayendo el archivo .ipa, ¿verdad?

Respuesta

-4

Se puede crear todo el código HTML y así sucesivamente también dentro de su código y luego usar UIWebView 's

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL 

para cargar manualmente cada cadena HTML como texto sin formato. Sin embargo, te aconsejo que no lo hagas. Si alguien realmente quiere aislar cada cadena de su código fuente compilado, esto es posible para él (a menos que realmente haga cosas exigentes).

A la mayoría de los usuarios simplemente no les importa qué hay dentro del archivo ipa. Si puedes vivir con < 1% que lo inspecciona, no hay que preocuparte mucho por el tema.

Otro aspecto sería posible también (incluso si esta no es una idea fantástica): podría apuntar su UIWebView a un sitio web secreto que solo usted y su aplicación conocen. Esto es absolutamente no recomendable.

1

Puede encriptar los archivos y descifrarlos en tiempo de ejecución o no puede incluirlos en su paquete y tener un script de compilación que los lea y los convierta en datos codificados en su aplicación que puede cargar en su UIWebView con :

- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL 
+0

Asumo que quiere decir "cifrar" y "descifrar" en la primera frase, ¿verdad? – abarnert

+0

Sí, eso funciona. Actualizado. – pho0

9

Hay muchas maneras de proteger sus datos, dependiendo de lo bien que se desea que la protección sea. Para obtener una protección mínima contra los hackers ocasionales, puede utilizar un algoritmo de ofuscación para ofuscar y desactivar el contenido HTML como NSString s. Aquí hay un example of doing that. No he usado ese código en particular, pero tampoco estoy realmente recomendando ofuscación como una técnica, a menos que los datos realmente no sean muy delicados.

La mejor solución es cifrar el contenido HTML, aunque eso es más trabajo, y puede implicar algún export control issues, dependiendo de dónde se encuentre, y donde se está distribuyendo su aplicación.

Para el cifrado, tiene muchas opciones.

1)Here is an open source implementation that provides a secure version of something like NSUserDefaults. No veo un equivalente a registerDefaults: en ese código, sin embargo, por lo que es posible que primero vez que se ejecute la aplicación, es posible que deba descargar el contenido de la web. Pero, entonces puede encriptarlo y almacenarlo en PDKeychainBindings como un valor de cadena. En posteriores ejecuciones, a continuación, fue posible extraer el HTML almacenado "archivos" como esto:

NSString* webPageContent = 
    [[PDKeychainBindings sharedKeychainBindings] valueForKey: @"index.html"]; 

2) Aquí hay otro open source project that provides AES encryption wrappers.Debería escribir algún código que no sea de producción antes de liberar su aplicación para cifrar el contenido HTML en archivos de datos cifrados que serían recursos agrupados. Cuando se ejecuta su aplicación, abre los archivos y los descifra en objetos NSString que se pueden dar a su UIWebView a través de loadHTMLString: baseURL:.

3) Finalmente, here's another example of using the underlying CommonCrypto APIs to protect bundle resources. Este ejemplo utiliza un paso de compilación personalizado para encriptar automáticamente recursos en una carpeta particular, lo que le ahorraría algo de tiempo si su contenido HTML protegido va a cambiar razonablemente a menudo.

Cuestiones relacionadas