iOS 7 uso de API privado

Ayer intenté usar Private API en iOS 7, pero no funciona. Las siguientes llamadas funcionan bien con iOS 6:

1. NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/AppleAccount.framework"]; 2. BOOL success = [b load]; 3. 4. Class AADeviceInfo = NSClassFromString(@"AADeviceInfo"); 6. 7. NSLog(@"-- serialNumber: %@", [AADeviceInfo serialNumber]); 8. NSLog(@"-- udid: %@", [AADeviceInfo udid]); 

Al usar este fragment de código dentro de iOS 7, devuelve un puntero nulo. El marco, la class y los methods todavía existen ( click mí ). ¿Alguna idea para mi problema? ¿Hay una capa adicional de security que hace que ya no sea posible llamar a API privadas dentro de iOS 7?

¡Gracias!

En la mayoría de los casos, dicho comportamiento significa que esta API quedó protegida por un derecho. Este es un método de autorización utilizado en iOS. La mayoría de las llamadas de API del server de processs. Y este server puede verificar si un cliente tiene algún derecho específico. Los derechos están disponibles solo para aplicaciones de sistema y aplicaciones de terceros en iOS jailbroken.

No hay una forma simple de verificar si el server requiere derecho. Sin embargo, a veces escribe en la console algo así como "Hey … Necesitas derecho X para llamar API Y". Sin embargo, la mayoría de las veces, falla silenciosamente.

Si realmente quiere verificar esto, tendrá que desensamblar el marco para ver qué server utiliza y desensamblar el server y search la implementación de esta API.