¿Cómo cambio las autorizaciones de mis aplicaciones iOS?

Necesito ejecutar el siguiente código para apagar la pantalla de mi iphone.

En iOS6:

void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked"); 

y luego usa:

 BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim 

No funciona. Alguien me dijo que necesito los derechos com.apple.backboard.client para que esto funcione en mi iPhone. No sé cómo establecer estos derechos. He visto varias forms de establecer derechos, pero son muy confusas para mí, como esta.

Sí, necesita codificar firmar los derechos. Pero, no, no tiene que ser con un certificate de Apple en teléfonos con jailbreak. Puede falsificar un signo de código, descargando el ejecutable ldid y haciendo

 cd MyAppName.app ldid -Sentitlements.xml MyAppName 

suponiendo que su aplicación se denomina MyAppName y usted hizo los derechos de file entitlements.xml. Creo que este file de derechos de autor funcionaría para usted, si el código falso lo firmó con ldid.

 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.backboard.client</key> <true/> </dict> </plist> 

Incluso con el método anterior, ¿dónde coloco el file de derechos anterior?

Para una aplicación jailbreak / derecho , necesitas hacer algo como esto. Primero, cree un file llamado entitlements.xml (o lo que quiera):

 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.backboard.client</key> <true/> </dict> </plist> 

Puede agregar más derechos si lo necesita. Este file de ejemplo solo le otorga a la aplicación el derecho com.apple.backboard.client .

Realmente no importa dónde pones este file. La key es:

  1. Tendrá que modificar el file SDKSettings.plist de Xcode, como se muestra aquí . CODE_SIGNING_REQUIRED debe establecerse en NO .
  2. No codifique la firma de su aplicación en Xcode. En Configuración de compilation , asegúrese de que la identidad del signo de código esté configurada como No firmar código .
  3. Luego de build su aplicación para el dispositivo iOS (¡no simulador!), Vaya al directory de su Mac donde se encuentran los files de salida. Para una aplicación llamada HelloWorld , estás buscando la carpeta HelloWorld.app . Puede variar según su configuration, por lo que no me molestaré en decirte dónde está. En caso de duda, use el command find command line.
  4. Descargue ldid preconstruido desde esta location o como fuente desde aquí .
  5. Copie el file entitlements.xml en el mismo directory donde HelloWorld.app es. (Nota: no tiene que tenerlo aquí … si lo coloca en otro lugar, simplemente ajuste la línea de command que le muestro a continuación).
  6. Cambie el directory al directory donde se encuentra su file entitlements.xml.
  7. Signo de código falso con este command :
 $ldid -Sentitlements.xml HelloWorld.app/HelloWorld 

Después de ese punto, necesitará transferir la carpeta entera de HelloWorld.app para instalar la aplicación en su dispositivo. Hay muchas forms de hacerlo, y parece que ya tienes una forma.

Tengo esta configuration de process completa con un script, para hacerlo más fácil.

Nota: No estoy declarando si este derecho es o no el derecho correcto de usar para la llamada BKSDisplayServicesSetScreenBlanked() en iOS 6. No lo he probado. Sé que este derecho funciona para permitirte usar SBDimScreen() en versiones inferiores de iOS. Pero, esta respuesta es solo una descripción de cómo agregar este tipo de derechos para una aplicación jailbreak.

Los derechos se establecen en el file del proyecto Xcode o en el file de derechos que elija el proyecto Xcode.

Mire en la configuration del proyecto en "Resumen" o "Fases de compilation" para la configuration o el nombre del file de derechos.