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

9

Tanto por razones como por razones presupuestarias, me gustaría tomar un paquete que normalmente requiera 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, desbloqueado usando evasi0n, ejecutando iOS 6.1.

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

    
pregunta Joncom 21.02.2013 - 08:49

3 respuestas

6

Los siguientes pasos instructivos para lograr este propósito se toman de: enlace

Mis conclusiones y acciones se proporcionan en cada paso.

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

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

2.Abra/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2oinferior:/Developer/Platforms/iPhoneOS.platform/Info.plist).Esposiblequenecesitepermisoderoot.

  • EstoyusandoXcode4.6,asíqueabríelarchivo.plistanterior.

3.ReemplacetodaslasaparicionesdeXCiPhoneOSCodeSignContextporXCCodeSignContext.Haytresdeellos(XCodeversión3.2.4+).

  • Hicetresmodificacionescomoindicanlascapturasdepantalla.

4. Guarde el archivo y reinicie Xcode.

  • Guardó el archivo.

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

  • Descargué ldid de enlace
  • Lo puse en /usr/local/bin .

6. Cree un script de Python ldid3.py justo al lado del programa ldid. Hazlo ejecutable. Rellénelo 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 en él.
  • Guardé este archivo como ldid3.py y lo almacené en el directorio /usr/local/bin .
  • En la terminal, ejecuté chmod 777 /usr/local/bin/ldid3.py .

7. Abrir 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 a codesign a ldid3.py .

  • De acuerdo con la instrucción oficial de instrucciones, convirtió el archivo de especificaciones en 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.
  • Se reemplazó <key>CommandLine</key><string>/usr/bin/codesign</string> con <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/tdmtanf en el dispositivo, para habilitar la "omisión TDMTANF" de Apple en la instalación (advertencia: al hacerlo, también lo colocará en un Centro de Juegos).

  • Creo un archivo de texto vacío en Windows, lo nombré tdmtanf , SSH'd en mi iPod, lo subí a /var/mobile/ y reinicié mi iPod.

Ahora que todo eso ha terminado con ...

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

Measegurodequelafirmadecódigoestéconfiguradaparausarelcertificadoconfiguradoenelpaso1.

Construyo la aplicación (Proyecto > Build). Sigue un mensaje de éxito.

Agarro mi carpeta de aplicaciones TicTacToe.app de /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/ y la transfiero a mi máquina Windows para instalarla en mi iPod.

En un intento de instalar la aplicación en mi iPod, arrastré TicTacToe.app a la sección de aplicaciones de la Utilidad de configuración del 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 el AppCake aplicación encontrada en Cydia. Ambos fallan.

Como punto de interés, porque como he buscado en Google, he notado que muchas personas mencionan la importancia de esto: tengo instalado AppSync. (Perdón por la gran captura de pantalla. Si debo eliminarlo, hágamelo saber)

Conclusión

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

Sospecho que la aplicación no es válida, pero habiendo seguido 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 expulsar el dinero?

    
respondido por el Joncom 21.02.2013 - 09:14
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, entonces no es necesario ejecutar solo compilarlo y archivarlo. Después de eso, distribúyalo ... elija Guardar para Enterprise o Ad-Hoc Deployment. Obtendrá su archivo .ipa. Espero que te pueda ayudar ..

    
respondido por el sl33py 13.03.2013 - 11:50
0

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

  • copie el archivo .app en su escritorio y luego ciérrelo
  • cambia el nombre de [yourappname].zip a [yourappname].ipa
  • luego adelante y descarga AppSync desde cydia
  • descargue e instale el archivo .ipa en su dispositivo

NOTA:

También puedes hacer esto directamente sin pasar por toda la modificación del código Python que mencionó @joncom .. lea más here

    
respondido por el leo 08.06.2014 - 22:30

Lea otras preguntas en las etiquetas