veo dos problemas/preguntas en su mensaje:
1) se obtiene el error
'Receptor tipo 'UIApplication' para el mensaje de instancia no declarar un método con el selector' launchApplicationWithIdentifier: suspendido: ''
¿Eso es un error de compilación? Parece que es así. Aquí está la cosa. Hay un montón de clases object-c en el conjunto de Frameworks públicos que todavía tienen algunos métodos privados en ellos. Por lo tanto, en los encabezados normales (archivos .h) para los marcos públicos, esos métodos privados no se enumerarán. Pero, están ahí en las bibliotecas dinámicas. Si desea construir una aplicación que los use, entonces una forma de resolver el problema es encontrar una copia del encabezado completo .
Por ejemplo, here's a copy of the full UIApplication.h header.
A continuación, puede copiar la declaración de los métodos privados, y en su propio código, declararlos así:
// Used to disable warning for non-public methods
@interface UIApplication (Extensions)
- (BOOL)launchApplicationWithIdentifier:(id)identifier suspended:(BOOL)suspended;
@end
Eso debe dejar que el compilador se queja de que el método privado no lo hace existe.
Para el futuro, debe leer acerca de class-dump
, que es una herramienta que puede ejecutar en los marcos públicos o privados en el SDK, y generar encabezados inversos como el anterior, usted mismo. Cambiaran con cada versión del SDK, por lo que es bueno poder generarlos usted mismo.
2) preguntas sobre el uso de autorizaciones sin firma de código.
Primero, read what Saurik originally wrote about it here. Sí, necesita indicar el código de las autorizaciones. Pero, no, no tiene que ser con un certificado de Apple en teléfonos con jailbreak.Puede señal de código falso, mediante la descarga del ejecutable ldid
, y haciendo
cd MyAppName.app
ldid -Sentitlements.xml MyAppName
asumiendo que su aplicación es nombrado MyAppName y que realizó los derechos de archivo entitlements.xml. Yo creo derechos que este archivo funcionaría para usted, si usted firmó de código falsa 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.springboard.launchapplications</key>
<true/>
</dict>
</plist>
tener cuidado. He encontrado ldid
en internet en un par de lugares. Realmente no estoy seguro de cuál es el derecho uno. Recuerdo que una vez, traté de hacer esto, y la versión de ldid
que estaba usando no funcionaba para firmar los derechos. Descargué ldid
de otra fuente, y luego funcionó. Así que ten cuidado.
nota: si se pregunta por qué dije "No sé" a su otra pregunta, pero contestó esta, es porque su otra pregunta se especificó utilizando Xcode. este no. Actualmente solo sé cómo hacer esto ** fuera ** de Xcode. Normalmente construyo con Xcode (sin firma de código), y luego firmo el código fuera de Xcode (con ldid) cuando construyo aplicaciones de jailbreak. – Nate