IPHONE PROGRAMMING (Como probar mi aplicacion en un IPHONE sin ser desarrollador)

pLo primero que he pensado al tocar XCODE fue quot;que fácil es diseñar una interfaz gráficasquot; y con un simulador y todo (no necesitas tener un IPHONE), pero yo que tengo uno pensé quot;porque no puedo probar mi aplicacion en mi IPHONEquot; y esto tenia una respuesta muy fácil, haciendome desarrollador de apple con licencia (que significa con licencia?), bueno esto se hace facil pagando 100dolares al año, pero y yo que aun no he diseñado nada, y quiero probar si este mundillo me interesa, no me puedo tirar 6 meses aprendiendo hasta sacar una aplicacion como la gente y luego pagar???… para no perder esos 6 meses de pruebas… ? claro que sin pero solo con el emulador de IPHONE…..

MMMMM… esto no me gustaba mucho y encontre un tuto que explica como esquivar el bulto…

A ello:

Lo primero que debemos hacer es asegurarnos que el XCODE está apagado, luego vamos a crear un certificado quot;falsoquot;, para que nuestro XCODE lo tome como original y nos de paso…

Vamos a asistente de certificados dentro de Utilidades o en ENGLISH (Utilities/KEYCHAIN ACCESS). Aqui lo unico que debemos hacer es crear un certificado, accedemos a (Acceso a llaveros/Asistente de certificados/crear un certificado) luego las imagenes nos muestran que hacer.

Dentro del administrador de certificados, vamos al asistente y creamos un certificado.

Asignamos todos los valores y nombre tal cual lo vean en las imagenes.

style=”color:#008;text-align:right;”

Hasta ahora solo tenemos un certificado con el nombre IPHONE DEVELOPMENT… ahora vamos a decirle al XCODE que lo busque en otro sitio y no donde quot;deberiaquot;.

NOTA este paso es delicado y si lo haces mal no hay vuelta a tras y si quieres luego registrarte como desarrollador deberias reinstalar el XCODE. Si lo haces bien, con solo cambiar el archivo INFO.PLIST ya tienes un XCODE original.

1º Buscamos donde se encuentra el archivo DEVELOPMENT porque tras cada actualizacion de OSX lo cambian de sitio…

Yo tengo el LION 10.7.3 y lo encuentro dentro del programa XCODE, entonces debo irme a /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform

Aquí tendremos el archivo Info.plist, lo primero lo resguardamos copiandolo con otro nombre.

sudo cp Info.plist Info.plist.backup

y luego cambiamos la configuracion del XCODE con el siguiente comando.

basicamente sobreescribe la config cambiando el directorio de certificados.

sudo /usr/bin/sed -i .bak ‘s/XCiPhoneOSCodeSignContext/XCCodeSignContext/’ Info.plist

Ahora ya lo tenemos todo, por temas de costumbre es bueno reiniciar aunque no es necesario pero cada vez que hago un cambio en firmas o a bajo nivel, prefiero reiniciar.

cuando iniciemos conectamos el IPHONE, iniciamos el ITUNES (ya que este se encarga del dialogo con el IPHONE. Y ya podemos iniciar el XCODE.

cuando inicies XCODE, y cambies la opcion a iOS DEVICE, en cuanto conectes el IPHONE este aparecerá.

Igual tienes que cambiar la opcion en Build Setting, dentro del proyecto.

A partir de aqui, cada vez que hacemos un upgrade de XCODE, deberemos re-hacer esto.

Saludos y si tienen dudas… consulten.

15 thoughts on “IPHONE PROGRAMMING (Como probar mi aplicacion en un IPHONE sin ser desarrollador)”

  1. Todo perfecto hasta el utimo paso en la linea de codigo

    sudo /usr/bin/sed -i .bak ‘s/XCiPhoneOSCodeSignContext/XCCodeSignContext/’ Info.plist

    alguna sugerencia me sale el siguiente mensaje:

    sed: 1: “‘s/XCiPhoneOSCodeSign …”: invalid command code ?

  2. Hola

    segui todo (sin reiniciar) y no resulto, me sale el error “No code signature found.”, lo único que me falta es probar después de reiniciar, pero según mi experiencia (no es primera vez que trato de hacer esto), va seguir igual. Hoy hay algún cambio????

    gracias.

  3. Intentalo nuevamente, con los mismos nombres, y si tienes certificados con el nombre… entonces eliminalos, pero ahora tengo MountainLion y he realizado este procedimiento ayer, y funciona perfectamente…algún paso te falta.

    Saludos.

  4. Este comando lo unico que hace, es reemplazar una consa con otra… intentalo hacer a mano… con un VI.
    Basicamente lo que hace es: abre el archivo Info.plist y busca la cadena XCiPhoneOSCodeSignContext y la reemplaza por XCCodeSignContext.

    lo puedes hacer de la siguiente forma-.
    abres el archivo con VI…
    #vi Info.plist
    y luego
    :s%/XCiPhoneOSCodeSignContext/XCCodeSignContext/ [ENTER]
    luego para finalizar…
    :wq! [ENTER]

    Saludos.

  5. Pues a mi cuando pongo el comando me sale el siguiente error:
    sed: RE error: illegal byte sequence

    Tampoco me funcionava lo de editar el archivo con VI, lo he hecho copiando Info.plist al escritorio, lo he editado y he hecho FIND & REPLACE ALL, y lo he sobrescribido en la carpeta, me pedia la contraseña de administrador y punto.

    Aunque después al provarlo en mi iPhone me sale el siguiente error:
    failed to get the task for process 11939

    La app no se llega a ejecutar, aunque si veo el icono de la app.

  6. ¿Solo funciona con dispositivos con JailBreak?
    Lo hice tal cual y parecía que iba a funcionar pero al ejecutar una App me dice:

    The identity used to sign the executable is no longer valid.
    Please verify that your device’s clock is properly set, and that your signing certificate is not expired.

    (0xE8008018).

    Y obviamente ya no puedo ejecutarla en el iPhone, tengo xCode 4.5 y Mountain Lion, si sabes algo por favor me ayudaría mucho.

  7. Intenta nuevamente pero verifica:
    1º XCODE apagado
    2º Busca el archivo /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
    3º Has un backup, en un terminal: sudo cp Info.plist Info.plist.backup
    4º Dependiendo de la version de XCODE y MAC OSX tienes que probar las diferentes opciones… hasta que verifiques que se ha reemplazado la palabra.
    En nuestro caso necesitamos reemplazar la palabra XCiPhoneOSCodeSignContext que se repite 3 veces dentro del archivo Info.plist, y cambiarla por esta XCCodeSignContext

    Si es una version vieja de XCODE o es el SNOW LEOPART lo puedes hacer con este comando desde un terminal.
    sudo /usr/bin/sed -i .bak ‘s/XCiPhoneOSCodeSignContext/XCCodeSignContext/’ Info.plist

    Si tu version es nueva o el comando da error intenta editar el archivo Info.plist con el programa TEXTWRANGLER.APP gratis en internet.
    con este programa yo he podido modificar el archivo y verificar que funciona correctamente, tengo el XCODE 4.5.2 y el Montain Lion 10.8.2.

    Luego de verificar que el archivo se encuentra modificado correctamente, crea “si no lo tienes ya” el certificado… aunque puedan creer que el certificado es lo mas complicado, es todo lo contrario, el certificado es lo mas fácil y siguiendo los pasos se hace perfecto.
    ya me contarán.

  8. Lo volveré a intentar, aunque la verdad es que hice todo como me mencionas, nada diferente. Lo que sí me quedó duda es ¿sirve con cualquier iPhone/iPad? ¿O tiene que ser a fuerza con Jailbreak? Ya que he visto tutoriales parecidos pero no aclaran el tema.

    Saludos! Y gracias por responder!

  9. Pues ya he probado de nuevo;

    Desinstalé xCode para empezar desde cero, y cambié los 3 XCiPhoneOSCodeSignContext por XCCodeSignContext con el programa TextWrangler que recomendaste, eliminé el certificado que tenía, y cree otro con los mismos pasos con el nombre “iPhone Developer” y con un año de vigencia, al final abrí xCode, en el Build Settings elegí “iPhone Developer” como el Code Signing Identity, y al correrlo me manda dos veces el mismo error que te mencioné antes:

    The identity used to sign the executable is no longer valid.
    Please verify that your device’s clock is properly set, and that your signing certificate is not expired.

    (0xE8008018).

    En fin que no sé si es porque mi dispositivo no tiene Jailbreak, o si el problema es por usar iOS 6 o si me falta hacer algo, ojalá tengas alguna idea.

    Saludos y gracias!

  10. Bueno… ahi se me escapa… porque yo tengo 2 IPHONE y un IPAD 2… y todos en la version 5.1 y con Jailbreak … no puedo probar si funciona o no en la version 6 y sin Jailbreak… sorry. Será una de esas dos opciones… porque yo tengo 3 equipos con MACOSX uno con Montain Lion otro con Lion y otro Hackingtosh con Lion… y en todo funciona bien el procedimiento asi que solo queda el tema del 6.0 o el Jailbreak (este ultimo mas probable.)

    SAludos y suerte.

  11. Supongo que es eso, y lo malo es que Jailbreak para iOS 6 todavía no hay y para cuando ya exista será cuando ya salga una nueva versión de iOS xD u_u… Qué mal, para que no haya confusiones recomiendo que pongas que el tutorial solo sirve para iDevices con Jailbreak.

    Igual muchas gracias por la ayuda.

  12. Por si a alguien le sirve a mi me ha funcionado en iphone 4 iOS 6.0.1con jailbreak (tethered ) y Xcode 4.5.2 y Mountain lion 10.80.2 la modificacion del archivo plist la he hecho a “mano” mas o menos como se explica en un comentario de arriba.
    Una vez hecho correctamente lo anterior con el mismo xcode y sin tener que conectar el iphone ,con un proyecto de “prueba” ,he sacado un *.ipa directamente para “distribuir” la aplicación fuera de la appstore,(lógicamente los aparatos con jailbreak ).
    *Product->Archive (se abre pantalla de Archive) Distribute->save for enterprise…..-> Don´t Re-sing->Next->Save.
    Luego el *. ipa lo he instalado con iTunes y todo correcto .(he hecho la prueba 3 veces).

  13. Hoy lo he vuelto a intentar y me ha funcionado, por otros motivos, he reinstalado el sistema de cero y sin restaurar desde Time Machine. Y hoy me puse a intentarlo, me ha salido a la primera. El caso es que para modificar los 3 XCiPhoneOSCodeSignContext por XCCodeSignContext lo hice copiando el archivo al escritorio, modificar esos 3 y volviendo a arrastrar el info.plist a su carpeta de origen, me pidió el password para reemplazar y funcionó. Después borré todos los certificados “iPhone Developer” y lo creé de cero. Y voilá, funcionó. Cabe decir que cuando le hago run seleccionando mi iPhone 4 conectado por USB, la app no se abre sola, sino que se instala y en xcode me da error de que no se ha podido inicial la app pero se queda instalada, y si la abro manualmente funciona a la perfección.

    Por si sirve de algo :

    OS X Mountain Lion 10.8.3
    xCode 4.6.2

    Saludos y gracias!

  14. Ah por cierto, mi iPhone 4 tiene iOS 6.1 con JailBreak y AppSync instalado. La verdad no sé si tiene que ver o no pero ahí dejo el dato.

    Saludos nuevamente.

Leave a Reply

Your email address will not be published. Required fields are marked *