2012-07-23 5 views
7

Mi amigo tiene un iPad con jailbreak. Cuando se instala la aplicación del modelo de negocios de Generación de Installous y trató de utilizarla, la aplicación mostró una UIAlertView con el siguiente mensaje: Hacked VersionDetectar si la aplicación de iOS ha pirateado

¿Alguien sabe cómo hacer eso?

tengo 2 ideas:

  1. Si hay alguna bandera conjunto cuando se descarga la aplicación desde la App Store, a continuación, puede utilizar este indicador: si flag = NO, que muestran la UIAlertView.
  2. Algo con un servidor (pero en este caso, debe saber todos los ID de dispositivo y quién instaló su aplicación en la App Store).

Am I right? ¿Cómo puedo implementar esta característica?

+1

Apostaría el segundo enfoque es el utilizado en la mayoría de los casos –

+0

y cómo debo tener en cuenta todos los ID correctos? –

+0

quizás agregaron una versión especial de la aplicación a la tienda jailbroken con vista de alerta especial y mantienen intacta la versión normal de la tienda de aplicaciones – CarlJ

Respuesta

9

Puede detectar dos archivos: SC_Info y iTunesMetadata.​plist.

Si no puede encontrarlos, su aplicación fue pirateada: estos archivos se instalan después de descargarlos de la tienda de aplicaciones.

Este es el código para comprobar:

NSString * bundlePath = [ [NSBundle mainBundle] bundlePath ]; 
if (! [ [NSFileManager defaultManager] fileExistsAtPath: (@"%@/SC_Info", bundlePath) ]) 
{ 
    // jailbroken 
} 
if (! [ [NSFileManager defaultManager] fileExistsAtPath: (@"%@/iTunesMetadata.​plist", bundlePath) ]) 
{ 
    // jailbroken 
} 
+0

Cosa extraña, @Eugene, no puedo encontrar SC_Info y iTunesMetadata.plist en mi propia ipa. – Tertium

+2

@Tentium, estos archivos se agregarán en AppStore. Por lo tanto, debe descargar su aplicación de AppStore y luego la encontrará –

+1

¿Cómo puede probarla antes de enviarla? por ejemplo, creo que tiene un error en el código en sí, debe ser: [NSFileManager defaultManager] fileExistsAtPath: ([NSString stringWithFormat: @ "% @/SC_Info", bundlePath] – Idan

2

hay Bibliotecas alrededor del cual se puede detectar si está agrietado una aplicación (y el jailbreak también), este question da una buena visión general, pero básicamente es hecho por la comprobación de la identidad del firmante

una biblioteca es AntiCrack. No he usado esta biblioteca así que no sé qué tan bien funciona

-3

Es bastante simple, pero se podría verificar si la aplicación de cydia está instalada (comprobando si su carpeta existe). Si está instalado, entonces no confías en el dispositivo. Esto deja el riesgo de liberar de forma incorrecta iPhones/iPads liberados que descargaron su aplicación de la tienda de aplicaciones.

+1

pero algunas personas pueden comprar aplicaciones cuando tienen jailbroke ... por eso esta no es una opción –

+0

Eso es verdad . –

+1

Esto no funcionaría porque las aplicaciones de la App Store están en la zona de pruebas, por lo que buscar directorios fuera de esa zona de pruebas no es una opción – WrightsCS

Cuestiones relacionadas