¿Cómo puedo implementar una aplicación para iPhone desde Xcode a un dispositivo iPhone real?

¿Cómo puedo implementar una aplicación de iPhone desde Xcode a un dispositivo de iPhone real sin tener un certificado de Apple de 99 dólares estadounidenses?

Parece que la aplicación no está firmada. Descargue ldid de Cydia y luego úselo de la siguiente manera: ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

Además, asegúrese de que el binario esté marcado como ejecutable: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph

He usado una mezcla de dos howtos: Jason y Alex. Con el segundo tenemos la ventaja de poder depurar. Sobre todo, solo copiaré los dos a continuación (y simplificaré los de Alex):

Actualización de enero de 2012: esto todavía funciona en SDK 4.2.1 y iOS 5.0.1 – ¡Acabo de probarlo todo en una nueva computadora y dispositivo!


1. Crear certificado autofirmado

Parchee su SDK de iPhone para permitir el uso de este certificado:

  1. Inicie Keychain Access.app. Sin elementos seleccionados, en el menú Llavero, seleccione Asistente de certificado y luego Crear un certificado.

    • Nombre: Desarrollador de iPhone
    • Tipo de certificado: firma de código
    • Permítame anular los valores predeterminados:
  2. Clic Continuar

    • Validez: 3650 días
  3. Clic Continuar

  4. En blanco el campo Dirección de correo electrónico .

  5. Haga clic en Continuar hasta completar .

    Debería ver “Este certificado raíz no es de confianza” . Esto es esperado.

  6. Configure el iPhone SDK para permitir que se use el certificado autofirmado:

     sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist 

    Si tiene Xcode abierto, reinícielo para que este cambio surta efecto.

Y si tienes iOS 5, ¡eso es todo! ¡Pruebalo ahora! Es posible que no permita la depuración, ¡pero la aplicación estará allí!

Me sorprendió mucho porque, como deberían saber , ¡no tengo idea de qué se tratan todos esos hackings! Todo lo que hice fue mejorar un poco lo que encontré en otra parte, como señalé.

Así que sí, todo el método ya no funciona de la misma manera y no me he molestado en encontrar uno nuevo … Excepto por esto, que usa una herramienta llamada Theos pero no pude pasar por todo el proceso.

Finalmente, si necesita desinstalarlo por cualquier razón, verifique el final de esta publicación. En mi caso, tuve que hacerlo porque no pude entender por qué todo este método dejó de funcionar y ya no me importa porque ya tenemos la licencia largamente esperada. (El número DUNS de Freaking tarda tanto …)

.

.


.

.

.

2. Habilitar Xcode para comstackr en dispositivo Jailbroken

  1. En su iPhone con jailbreak, instale la aplicación AppSync agregando la fuente http://cydia.hackulo.us

  2. Elimine los requisitos de SDK para el símbolo de código y los derechos (¡Me encanta sed !):

     sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist 
  3. Preste atención a la parte iPhoneOS5.0.sdk . Si, por ejemplo, usa iOS 4.2 SDK, simplemente reemplácelo en consecuencia:

     sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist 
  4. Concluya la eliminación del requisito mediante el parche de Xcode. Esto significa edición binaria:

     cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 printf "\xc3\x26\x00\x00" >> working /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original /bin/mv working iPhoneOS\ Build\ System\ Support chmod a+x iPhoneOS\ Build\ System\ Support 

    Si tiene Xcode abierto, reinícielo para que este cambio (y el último) surta efecto.

  5. Abra “Proyecto> Editar configuración del proyecto” (del menú). Haga clic en la pestaña “Crear” . Busque “Identidad de firma de código” y su hijo “Cualquier dispositivo iPhoneOS” en la lista y establezca ambos en la entrada “No firmar código” :

    texto alternativo

    Después de esto, siéntase libre de deshacer el paso 3. Al menos en mi caso todo salió bien.

  6. Configurando Xcode a la señal del código con nuestro certificado autofirmado hecho a medida (el primer instructivo). Este paso probablemente puede omitirse si no desea poder depurar:

     mkdir /Developer/iphoneentitlements401 cd /Developer/iphoneentitlements401 curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt mv gen_entitlements.txt gen_entitlements.py chmod 777 gen_entitlements.py 

    Conecte su iPhone y abra Xcode. Abrir ventana> Organizador. Seleccione el dispositivo de la lista en el lado izquierdo y haga clic en “Usar para desarrollo”. Se le solicitará que inicie sesión en el sitio web de provisión, haga clic en cancelar. Está ahí para facilitar el aprovisionamiento legítimo, pero no hace más ilegítimo el no aprovisionamiento.

    Ahora tiene que hacer esta última parte para cada nuevo proyecto que haga . Vaya al menú Proyecto> Nueva fase de comstackción> Nueva fase de comstackción del script de ejecución. En la ventana, copia / pega esto:

     export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate if [ "${PLATFORM_NAME}" == "iphoneos" ]; then /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"; codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/" fi 

.

.


.

.

Desinstalando

Para la primera parte:

 sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist 

Para la 2da parte:

 sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support 

en caso de que haya realizado el paso 3 en lugar de 2, simplemente modifíquelo también:

 sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist 

para el rest, solo está revertiendo lo que hizo en XCode y eliminando /Developer/iphoneentitlements401/gen_entitlements.py si lo desea:

 sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py 

Aprovisionamiento gratuito después de Xcode 7

Para probar su aplicación en un dispositivo real en lugar de pagar la tarifa de Desarrollador de Apple (o liberar su dispositivo), puede usar el nuevo aprovisionamiento gratuito compatible con Xcode 7 e iOS 9.

Aquí están los pasos tomados más o menos de la documentación (que es bastante buena, así que dale una lectura):

1. Agrega tu ID de Apple en Xcode

Vaya a XCode> Preferencias> pestaña Cuentas> botón Agregar (+)> Agregar ID de Apple. Consulte los documentos para obtener más ayuda.

enter image description here

2. Haga clic en la pestaña General en el Navegador del proyecto

enter image description here

3. Elija su ID de Apple en el menú emergente de Equipo.

enter image description here

4. Conecte su dispositivo y selecciónelo en el menú de esquema.

enter image description here

5. Haga clic en el botón Solucionar problemas

enter image description here

Si recibe un error acerca de que el nombre del paquete no es válido, cámbielo a algo único.

6. Ejecute su aplicación

En Xcode, haga clic en el botón Generar y ejecutar.

enter image description here

7. Confía en el desarrollador de la aplicación en la configuración del dispositivo

Después de ejecutar su aplicación, obtendrá un error de seguridad porque la aplicación que desea ejecutar no es de la App Store.

enter image description here

En su dispositivo , vaya a Configuración> General> Perfil> su-nombre-ID de Apple > Confíe en su-nombre-ID de Apple > Confianza.

8. Ejecute su aplicación en su dispositivo nuevamente.

Eso es. Ahora puede ejecutar la suya (o cualquier otra aplicación para la que tenga el código fuente) sin tener que repartir los $ 99 dólares. Gracias, Apple, por finalmente permitir esto.

No se puede, no si se trata de aplicaciones creadas con el SDK oficial y de implementación directa desde xcode.

Tendrás que hacer jailbreak en tu dispositivo.

Hay una forma de implementar aplicaciones de iPhone sin pagar a Apple. Tendrá que hacer un jailbreak en su dispositivo y seguir las instrucciones en http://www.alexwhittemore.com/?p=398.

Nada de lo que he visto en ninguna parte indica que se puede implementar ad-hoc en un iPhone real sin un certificado (pagado).

Estaba revisando el desarrollador de Apple anoche y allí, en el certificado de aprovisionamiento, encontré algo así como “Firmar miembros del equipo”. Creo que hay una manera de agregar miembros del equipo al perfil pago. Simplemente puede pedirle al propietario de la aplicación ID (pagado) que lo agregue como miembro del equipo. No estoy seguro. Todavía buscando en eso.

No, es fácil hacer esto. En Xcode, configure la Configuración activa para liberar. Cambie el dispositivo de Simulador a Dispositivo, sea cual sea el SDK. Si desea exportar directamente a su iPhone, conéctelo a su computadora. Presiona Build and Go. Si su iPhone no está conectado a su computadora, aparecerá un mensaje que le indicará que su iPhone no está conectado.

Si esto se aplica a usted: (iPhone no estaba conectado)

Ve a la carpeta de proyectos y luego a la carpeta de comstackción dentro. Ve a la carpeta Release-iphoneos y toma la aplicación adentro, arrastra y suelta el icono de iTunes. Cuando sincroniza su dispositivo iTouch, lo copiará en su dispositivo. También aparecerá en iTunes como una aplicación para el iPhone.

¡Espero que esto ayude!

PD: Si dice algo acerca de que un certificado no es válido, simplemente haga clic en el proyecto en Xcode, el pequeño icono de proyecto en la stack de archivos a la izquierda, y presione Apple + I, o obtenga Información de la barra de menú. Haga clic en Build en la parte superior. Debajo de la firma de código, cambie la identidad de firma de código: cualquier dispositivo con sistema operativo de iPhone que no se debe firmar.

Esto realmente depende de la versión de Xcode que esté utilizando, ya que las diferentes versiones usan diferentes métodos para implementar en su iPhone sin un perfil de aprovisionamiento.

Xcode 3.2.1 es una buena versión y es fácil de solucionar, pero necesitamos saber qué versión estás usando.

La solución publicada por Cawas también funciona perfectamente con XCode4. Sin embargo, hay algunos cambios en la IU de IDE, por lo que debes investigar para encontrar Run Script 🙂

En la vista de Project Navigator, haga clic en el elemento raíz del proyecto, luego en la ventana central, seleccione Target, luego haga clic en la pestaña Build Fases y en la parte inferior verá el botón Add Build Phase, haga clic en y seleccione Add Run Script, luego pegue “codesign “guión publicado por Cawas.

No hay solución. Solo puede implementar aplicaciones ad hoc si están registradas con su dispositivo. Esto le impide crear su propia tienda de aplicaciones.