¿Cómo puedo implementar una aplicación para iPhone desde Xcode en un dispositivo iPhone real?
¿Cómo puedo implementar una aplicación para iPhone desde Xcode en un dispositivo iPhone real sin tener un certificado de Apple de US?99?
12 answers
Parece que la aplicación no está firmada. Descarga ldid desde Cydia y luego úsalo así: ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
También asegúrese de que el binario esté marcado como ejecutable: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-30 23:48:56
He usado una mezcla de dos howtos: Jason y alex . Con el segundo tenemos la ventaja de poder depurar. En su mayoría solo copiaré ambos a continuación (y simplificaré el de Alex):
Actualizar Jan 2012: esto todavía funciona en SDK 4.2.1 y iOS 5.0.1 - Acabo de probarlo todo en un nuevo equipo y dispositivo!
1. Crear Certificado Autofirmado
Parchee el SDK de su iPhone para permitir el uso del presente certificado:
-
Inicie Acceso a Llavero.app. Sin elementos seleccionados, en el menú Llavero seleccione Asistente de certificado y, a continuación, Cree un certificado.
- Nombre: Desarrollador de iPhone
- Tipo de certificado: Firma de código
- Permítanme anular los valores predeterminados: Sí
-
Haga clic en Continuar
- Validez: 3650 días
-
Haga clic en Continuar
Borre el campo de dirección Email.
-
Haga clic en Continuar hasta completar.
Debería ver "Este certificado raíz no es de confianza". Esto se espera.
-
Configure el SDK de iPhone para permitir el uso del certificado autofirmado:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Si tienes Xcode abierto, reinícialo para que este cambio tome efecto.
Y si estás en iOS 5, eso es todo! ¡Pruébalo ahora! Puede que no permita la depuración, pero la aplicación estará allí!
Yo estaba muy sorprendido por esto porque, como usted debe saber, no tengo ni idea de lo que todos esos hackings son todo! Todo lo que hice fue mejorar un poco lo que encontré en otros lugares, como señalé.
Así que sí, el método completo ya no funciona de la misma manera y no podía molestarme para 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 podía entender por qué todo el azul de todo este método dejó de funcionar, y no me podía importar ya que ya tenemos la licencia largamente esperada. (Maldito número DUNS toma tan largo...)
.
.
.
.
.
2. Habilitar Xcode para construir en dispositivo Jailbreak
En su iPhone con jailbreak, instale la aplicación AppSync agregando la fuente http://cydia.hackulo.us
-
Elimine los requisitos del SDK para la firma 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
-
Paga atención a la parte
iPhoneOS5.0.sdk
. Si, por ejemplo, está utilizando 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
-
Concluir la eliminación de requisitos a través de parches 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.
-
Abre "Proyecto>Editar Configuración del proyecto" (desde el menú). Haga clic en la pestaña "Build". Buscar " Firma de código Identity " and its child "Any iPhoneOS Device" in the list, and set both to the entry "No Firmar Código":
Después de esto, no dude en deshacer el paso 3. Al menos en mi caso salió bien.
-
Configurando Xcode a code sign con nuestro certificado autofirmado personalizado (el primer cómo hacerlo). Este paso probablemente se puede omitir si no desea ser capaz de 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
Conecta tu iPhone y abre Xcode. Abrir Ventana>Organizador. Seleccione el dispositivo de la lista en el lado izquierdo, y haga clic en " Usar para el desarrollo."Se le solicitará un inicio de sesión en el sitio web de aprovisionamiento, haga clic en cancelar. Está ahí para facilitar el aprovisionamiento legítimo, pero no hace que el no aprovisionamiento ilegítimo sea más difícil.
Ahora Tienes que hacer esta última parte para cada nuevo proyecto que hagas. Vaya al menú Proyecto > Nueva Fase de compilación > Nueva Fase de compilación de Script de ejecución. En la ventana, copiar / pegar 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
.
.
.
.
Desinstalar
Para la 1a parte:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
Para la segunda 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 hecho el paso 3 en lugar de 2, simplemente modifíquelo en consecuencia 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 resto, es solo revertir lo que hiciste en XCode y eliminar /Developer/iphoneentitlements401/gen_entitlements.py
si quieres:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:27
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 hacer jailbreak a su dispositivo), puede usar el nuevo aprovisionamiento gratuito que admite 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. Añade tu ID de Apple en Xcode
Vaya a XCode > Preferencias > Pestaña Cuentas > Botón Agregar (+) > Agregar ID de Apple. Ver los documentos para más ayuda.
2. Haga clic en la pestaña General en el Navegador del proyecto
3. Elige tu ID de Apple en el menú emergente Equipo.
4. Conecte su dispositivo y selecciónelo en el menú scheme.
5. Haga clic en el botón Solucionar problemas
Si obtiene un error sobre el el nombre del paquete no es válido, cámbialo a algo único.
6. Ejecute su aplicación
En Xcode, haga clic en el botón Construir y ejecutar.
7. Confíe 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 Tienda de aplicaciones.
En su dispositivo , vaya a Configuración > General > Perfil > tu-nombre-ID-de-Apple > Confianza tu-nombre-ID-de-Apple > Confianza.
8. Ejecute su aplicación en su dispositivo de nuevo.
Eso es todo. Ahora puede ejecutar su propia (o cualquier otra aplicación para la que tenga el código fuente) sin tener que repartir los dollars 99 dólares. Gracias, Apple, por finalmente permitir esto.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-24 06:15:35
No puedes, no si estás hablando de aplicaciones creadas con el SDK oficial y desplegadas directamente desde xcode.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-29 23:29:06
Tendrás que hacer jailbreak a tu dispositivo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-29 11:08:09
Hay una manera de implementar aplicaciones de iPhone sin pagar a Apple Tendrás que hacer jailbreak a tu dispositivo y seguir las instrucciones de http://www.alexwhittemore.com/?p=398
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-11 17:28:03
Nada de lo que he visto en ningún lugar indica que puede implementar ad-hoc en un iPhone real sin un certificado (pagado).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-14 07:42:02
Estaba pasando por el Desarrollador de Apple anoche y allí en el Certificado de aprovisionamiento encontré algo como - "Firmar Miembros del equipo". Creo que hay una manera de agregar miembros del equipo al perfil de pago. Solo puedes pedirle al Propietario del Id de la aplicación(uno de pago) que te agregue como miembro del equipo. No estoy seguro. Sigo buscando en eso.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-08 05:48:31
No, es fácil hacer esto. En Xcode, establezca la configuración activa en Release. 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 Construir y listo. Si su iPhone no está conectado a su computadora, aparecerá un mensaje diciendo que su iPhone no está conectado.
Si esto se aplica a usted: (iPhone no estaba conectado)
Vaya a su carpeta de proyectos y luego a la carpeta de compilación dentro. Ir a la carpeta Release-iphoneos y llevar la aplicación dentro, arrastrar y soltar en el icono de iTunes. Cuando sincronices tu dispositivo iTouch, lo copiará en tu dispositivo. También se mostrará en iTunes como una aplicación para el iPhone.
Espero que esto ayude!
P.d.: Si dice algo acerca de que un certificado no es válido, simplemente haga clic en el proyecto en Xcode, el pequeño icono del proyecto en la pila de archivos a la izquierda, y presione Apple+I, o obtenga información de la barra de menú. Haga clic en Construir en la parte superior. Bajo Código Firma, cambiar la Identidad de Firma de código - Cualquier dispositivo iPhone OS para ser No Firmar.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-14 05:43:53
Esto realmente todo depende de la versión de Xcode que esté utilizando, ya que las diferentes versiones utilizan diferentes métodos para implementarse en su iPhone sin un perfil de aprovisionamiento.
Xcode 3.2.1 es una buena versión y es fácil de resolver, pero necesitamos saber qué versión está utilizando.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-09 01:17:15
La solución publicada por Cawas también funciona perfectamente con XCode4. Sin embargo, hay algunos cambios en la interfaz de usuario del IDE, por lo que necesita hacer una investigación para encontrar Run Script:)
En la vista del Navegador del proyecto, haga clic en el elemento raíz del proyecto, luego en la ventana central seleccione Destino, luego haga clic en la pestaña Fases de compilación y en la parte inferior verá el botón Agregar fase de compilación, haga clic y seleccione Agregar script de ejecución, luego pegue el script "codesign" publicado por Cawas.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-22 19:23:50
No hay solución. Solo puede implementar aplicaciones ad hoc si están registradas en su dispositivo. Esto le impide crear su propia tienda de aplicaciones..