¿Es posible compilar y ejecutar un proyecto Xcode en un dispositivo con jailbreak sin un certificado de desarrollador pagado?

9

Tanto por diversión como por razones presupuestarias, me gustaría tomar un paquete que normalmente requeriría una cuenta de desarrollador y crear una aplicación para ejecutar en un dispositivo iOS con jailbreak.

Tengo un iPod Touch de quinta generación, con jailbreak usando evasi0n, con iOS 6.1.

Estoy usando Xcode 4.6 con OS X (10.8.2) Lion.

Joncom
fuente

Respuestas:

6

Los siguientes pasos instructivos para lograr este propósito se toman de: http://iphonedevwiki.net/index.php/Xcode

Mis hallazgos y acciones se proporcionan en cada paso.

1. Cree un certificado de firma de código autofirmado con el nombre "Desarrollador de iPhone" en el llavero de "inicio de sesión" (predeterminado) usando Keychain Access.

  • Tomé capturas de pantalla mientras seguía las instrucciones anteriores.
  • Dejé la mayoría de los campos en blanco o en su valor predeterminado.

ingrese la descripción de la imagen aquí

2. Abierto /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2 o inferior:) /Developer/Platforms/iPhoneOS.platform/Info.plist. Es posible que necesite permiso de root.

  • Estoy usando Xcode 4.6, así que abrí el .plistarchivo anterior .

3. Reemplace todas las ocurrencias de XCiPhoneOSCodeSignContextby XCCodeSignContext. Hay tres de ellos (XCode Versión 3.2.4+).

  • Hice tres modificaciones como indican las capturas de pantalla.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

4. Guarde el archivo y reinicie Xcode.

  • Guardado el archivo

5. Asegúrese de tener ldid en su Mac. Coloque una copia en algún lugar, por ejemplo, en /usr/local/bin.

6. Cree el script Python ldid3.py justo al lado del programa ldid. Hazlo ejecutable. Llénalo con:

#!/usr/bin/env python

from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile

app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])

if '-gta' not in argv:
    check_call([ldid_path, '-S', obj_path])
else:
    with NamedTemporaryFile('w+b', 0) as f:
        f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>get-task-allow</key>
    <true/>
  </dict>
</plist>
        """)
        check_call([ldid_path, '-S' + f.name, obj_path])
  • Creé un nuevo archivo de texto sin formato y copié y pegué el código anterior.
  • Guardé este archivo como ldid3.pyy lo almacené en el /usr/local/bindirectorio.
  • En la terminal, corrió chmod 777 /usr/local/bin/ldid3.py.

7. Abierto iPhoneCodeSign.xcspec. Este archivo se puede encontrar en [Para Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec]:

8. Cambie la entrada en el archivo de llamar codesigna ldid3.py.

  • Según las instrucciones oficiales de la instrucción, convirtió el archivo de especificaciones a texto sin formato escribiendo en la consola: sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
  • Abrí el archivo con TextEdit.
  • Sustituido <key>CommandLine</key><string>/usr/bin/codesign</string>por <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>.

9. Guarde el archivo y reinicie Xcode.

  • Guardé el archivo y salí de TextEdit.

10. Cree un archivo /var/mobile/tdmtanfen el dispositivo para habilitar la "anulación de TDMTANF" de Apple en la instalación (advertencia: hacerlo también lo colocará en un GameCenter de espacio aislado).

  • Creo un archivo de texto vacío en Windows, lo tdmtanfllamé SSH en mi iPod, lo cargué /var/mobile/y reinicié mi iPod.

Ahora que todo eso terminó con ...

Abro mi proyecto Xcode existente y presiono Ejecutar. Funciona en el simulador de iOS sin ningún problema.

ingrese la descripción de la imagen aquí

Me aseguro de que Code Signing esté configurado para usar el certificado configurado en el paso 1.

ingrese la descripción de la imagen aquí

Construyo la aplicación (Proyecto> Construir). Un mensaje de éxito sigue.

Agarro mi carpeta de aplicación TicTacToe.appdesde /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/y transferirlo a mi máquina de Windows para instalar en mi iPod.

En un intento de instalar la aplicación en mi iPod, me arrastro TicTacToe.appa la sección de aplicaciones de la Utilidad de configuración de iPhone, pero recibí este mensaje de error que dice que mi aplicación "no es una aplicación móvil válida".

También he intentado instalar manualmente la aplicación usando iFunbox y la aplicación AppCake que se encuentra en Cydia. Ambos fallan.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Como punto de interés, porque a medida que busqué en Google, noté que muchas personas mencionan la importancia de esto: tengo instalado AppSync. (Perdón por la gran captura de pantalla. Si debo quitarla, ¡házmelo saber!)

ingrese la descripción de la imagen aquí

Conclusión

Entonces, a pesar de seguir las instrucciones de cerca, varias veces, mi aplicación de configuración de iPhone no es reconocida como una aplicación válida. No puedo instalar la aplicación manualmente usando programas como iFunbox o aplicaciones de Cydia como AppCake.

Sospecho que la aplicación no es válida, pero después de seguir las instrucciones cuidadosamente, no estoy seguro de por qué.

¿Alguien puede decirme por qué mi aplicación no es válida y qué puedo hacer para solucionar esto, además de gastar dinero?

Joncom
fuente
Sin embargo, fue una lectura interesante.
Thecafremo
No, me alegro de haberlo leído y probablemente volveré a leerlo en el futuro. Gracias por compartirlo.
Robert
Esto fue muy útil para mí cuando trabajé en Xcode 4.2 y iOS 4, espero que alguien pueda actualizar el procedimiento a Xcode 4.6
rraallvv
Después de descargar ldid, debe cambiar sus permisos a 755 con chmod 755 ldid. Esto me estaba causando un error de salida 1.
0

Puede conectar su dispositivo y seleccionar su dispositivo iOS como objetivo de ejecución. cuando se ejecuta, la aplicación se instala automáticamente en su dispositivo. O puede seleccionar su dispositivo iOS, luego no es necesario ejecutarlo, solo compilarlo y archivarlo. Después de eso, distribuya ... elija Guardar para implementación empresarial o Ad-Hoc. Obtendrá su archivo .ipa. Espero que te ayude..

sl33py
fuente
0

continuando la respuesta de @joncom .. puede agregar los archivos .app a su iPhone directamente, solo con unos pocos pasos adicionales.

  • copie el .apparchivo en su escritorio y luego comprímalo
  • cambiar el nombre de [yourappname].zipa[yourappname].ipa
  • luego continúe y descargue AppSync de cydia
  • descargue e instale el archivo .ipa en su dispositivo

NOTA:

También puede hacerlo directamente sin pasar por todas las modificaciones del código de Python que mencionó @joncom. Lea más aquí.

León
fuente