Mostrando entradas con la etiqueta apple. Mostrar todas las entradas
Mostrando entradas con la etiqueta apple. Mostrar todas las entradas

23 mayo 2010

Cómo ejecutar en un dispositivo iPhone sin pagar el programa de desarrolladores iPhone

Editado: Parece que hay que tener el teléfono con jailbreak e Installous debe de estar instalado.

Os voy a contar un truco que he encontrado por ahí y que me ha sido de gran utilidad.
Si alguna vez has pensado en programar para iPhone OS, uno de los mejores ejemplos para empezar sería éste. Es sencillo, te asienta varios conceptos importantísimos y está muy bien explicado. En el transcurso del tutorial vas ejecutando el ejemplo y lo vas probando para ver la evolución de lo que es tu primer programa de muchos más por llegar, espero. Lo bonito sería, cuando lo terminas, ejecutarlo en tu flamante iPhone para poder llevártelo por ahí y fardar con tus amigos de que "eres programador iPhone"... si es que estás dispuesto a pagar 79€ (99$).
Aunque hay una forma de saltarse esta restricción...

El Programa de Desarrollador iPhone de Apple no solo sirve para poder poner tus aplicaciones en la App Store, sino que también es necesario si quieres probar tus desarrollos en tu propio teléfono. Sinceramente es una cagada. Otro punto negativo para Apple (y ya van unos cuantos). Pero como decía en la entrada, buscando cómo solucionar este problema encontré un hilo donde una persona se curró una forma para poder ejecutar los desarrollos en el propio teléfono sin pasar por caja. Os cuento mi experiencia y los pasos para poder hacerlo también vosotros.
La configuración que he usado es XCode 3.2.2 con iPhone SDK 3.2, y el firmware de mi iPhone es un 3.1. Voy a explicarlo con el iPhone OS 3.1, si tenéis otra versión probad con la vuestra.

  1. Hacéis una copia de seguridad del fichero /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist.
    sudo cp -p /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist.bak

  2. Ahora lo editamos con vuestro editor favorito o con pico.
    sudo pico /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist

  3. Buscad y cambiad las claves DefaultProperties/CODE_SIGNING_REQUIRED y ENTITLEMENTS_REQUIRED y ponedlas a NO.
  4. Cread un fichero llamado gen_entitlements.py con el siguiente contenido (personalmente lo he salvado en /Developer/Applications/):
    #!/usr/bin/env python

    import sys
    import struct

    if len(sys.argv) != 3:
    print "Usage: %s appname dest_file.xcent" % sys.argv[0]
    sys.exit(-1)

    APPNAME = sys.argv[1]
    DEST = sys.argv[2]

    if not DEST.endswith('.xml') and not DEST.endswith('.xcent'):
    print "Dest must be .xml (for ldid) or .xcent (for codesign)"
    sys.exit(-1)

    entitlements = """
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>application-identifier</key>
    <string>%s</string>
    <key>get-task-allow</key>
    <true/>
    </dict>
    </plist>
    """ % APPNAME

    f = open(DEST,'w')
    if DEST.endswith('.xcent'):
    f.write("\xfa\xde\x71\x71")
    f.write(struct.pack('>L', len(entitlements) + 8))
    f.write(entitlements)
    f.close()


  5. Cambiad los permisos del fichero para que se pueda ejecutar:
    chmod +x gen_entitlements.py



  6. Una vez tengáis vuestro proyecto terminado, vais a "Project -> Edit Project Settings". En la pestaña "Build" buscáis "Code Signing Identity" y donde no suele poner nada lo seleccionáis y lo dejáis en "iPhone Developer" y bajo ésta seleccionais "Device - iPhone OS 3.1" o "Any iPhone OS Device" y ponéis "Don't Code Sign".
  7. Ahora vais a "Project -> New Build Phase -> New Run Script Build Phase" y copiamos el siguiente código (aseguraos de poner correctamente la ruta al fichero gen_entitlements.py, y de que coincida el Bundle Identifier):
    export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    /Developer/Applications/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


  8. Ahora debemos crearnos un certificado con el nombre que hemos dado a "Code Signing Identity" en el paso 6: "iPhone Developer". Para ello abrimos el programa de "Acceso a Llaveros" localizado en /Aplicaciones/Utilidades.
  9. Seleccionadmos "Acceso a Llaveros -> Asistente para Certificados -> Crear un Certificado..."
  10. Nombramos al certificado "iPhone Developer", con tipo de identidad "Raíz autofirmada" y tipo de certificado "Firma en código". Chequeamos "Permitir ignorar los valores por omisión". Le damos a continuar.
  11. Le damos un número de serie distinto de cualquier otro certificado y un periodo de validez. Continuar.
  12. Rellenamos los datos de correo electrónico, empresa, etc...
  13. Dejamos todo lo demás con las opciones por defecto hasta llegar al final. Con esto tenemos todo preparado para poder ejecutar nuestra aplicación en un dispositivo.
  14. Abrimos el organizador, en XCode "Window -> Organizer" y preparamos nuestro dispositivo para usarlo en nuestros desarrollos.
  15. Una vez configurado el iPhone vamos a compilar y ejecutar nuestro programa. Seleccionamos como destino de la ejecución "Device - 3.1|Debug" y le damos a "Build and Run". Después de unos segundos tendrá que aparecer nuestra aplicación en nuestro iPhone.


¡Suerte con vuestros desarrollos!

Leer la pencada completa...

09 abril 2010

Los iPhones marginados salen muy caros


Ayer nada más llegar a casa lo primero que hice fue leerme la secuencia de sucesos de la presentación del nuevo sistema operativo para iPhone: la 4.0.
La verdad es que gracias a la dura competencia que están teniendo parece que Apple está siendo menos Apple con el mundo de los dispositivos móviles viéndose obligado a incluir características y funcionalidades que, sin lugar a dudas, no incluirían o por lo menos no tan "pronto". Sólo así se podría explicar las diferencias tan abismales entre la versión actual 3.1.3 y la presentada.

Estas diferencias beneficiarán a los desarrolladores principalmente y, como consecuencia, al usuario final. O al menos si no tienes un iPhone de primera generación como es mi caso. Me explico:

El iPhoneOS 4.0 es compatible, según esta página, a partir del iPod Touch de segunda generación hacia adelante, y con el iPhone 3G hacia adelante, dejando a las primeras generaciones injustamente marginadas. La razón de que digo que es injusto es porque tanto el iPhone de primera generación como el iPhone 3G tienen exactamente el mismo hardware (ver la wikipedia para comprobarlo) a excepción del 3G en sí y de las funciones GPS, lo cual no debería ser un problema para poder ejecutar la nueva versión en uno sí y en otro no (lo mismo pasó con la posibilidad de ver el porcentaje de batería entre 3GS y los demás). ¿Por qué han decidido privarnos de un avance tan importante? Me temo que es para vender más teléfonos, estas son las cosas que odio de Apple.

La imposibilidad de actualizarse a la nueva versión hará que nuestros teléfonos se queden estancados para siempre en junio del 2010 (fecha prevista de lanzamiento de la nueva versión). Ya no podremos instalar nuevo software que se desarrolle a no ser que se tenga en cuenta la retrocompatibilidad. Como he dicho antes, los cambios más importantes de esta nueva versión es a nivel de programación, de APIs, con lo que todo desarrollo que use al menos una de todas estas funcionalidades hará que sea imposible que la instalemos en una versión 3.X.

Aquí no queda la cosa, esta decisión puede conllevar incluso pérdida de dinero. ¿Esto por qué? Sencillo si Apple no ha tenido en cuenta lo siguiente: ¿Qué pasaría si tenemos instalada una aplicación de pago, por ejemplo la magnífica MobileRSS, y en una actualización se les ocurre a los desarrolladores incluir el uso de alguna nueva API de iPhoneOS 4.0? puede que iTunes nos baje la nueva versión, borre la vieja y a la hora de sincronizar nuestro móvil nos salga un bonito mensaje de incompatibilidad ¿cómo volveremos a la versión anterior? Recordemos que no todo el mundo tiene copias de seguridad o el Time Machine activado... y aun teniéndolo puede pasar no tengas instalada actualmente la aplicación en cuestión y te de por reinstalar seis meses después con la incompatibilidad reseñada a ver quien es el guapo que recupera una versión válida.

Los sistemas tienen que avanzar sin mirar atrás en exceso el lastre que supondría los dispositivos viejos y menos capaces, y más en cuestión de sistemas operativos para teléfonos móviles. Pero lo que no veo justo es que dos teléfonos con el mismo hardware clave uno pueda ejecutar el nuevo sistema operativo y el otro no. Eso es lo que me enfada. Y me enervo cuando esa decisión puede conllevar pérdida de dinero, ahí atacan donde más duele.

Puede que la alternativa sea Android pero tengo que descartarlo por el gran crecimiento que tiene en cuanto funcionalidades. Pasa como con el iPhone pero más descarado y criticable. Algo que a priori debería ser motivo de alegría termina siendo una tomadura de pelo por parte, no de Google de forma directa, sino por los fabricantes de teléfonos. Los que se compraron una Magic hace escasamente un año casi seguro no podrán instalar la versión 2.0 hacia adelante por falta de memoria. Tristísimo.

Sólo espero que los chicos del dev-team se den prisa y consigan, si quieren y pueden, alguna forma de que se pueda ejecutar el nuevo SO en mi viejo y querido iPhone.

El tema de la pseudo-multitarea es para escribir una entrada a parte.

Leer la pencada completa...

02 marzo 2010

El AppleTV y sus problemas de sobrecalentamiento

Hace unas semanas que empecé a ver puntitos blancos aleatorios por la televisión cuando llevo un rato viendo alguna peli en el AppleTV, llegando incluso a pasar de simples puntos blancos a distorsiones en la propia película como si de una débil transmisión analógica se tratase. Pensé que podría ser problema de mi tele marca Supratech, o incluso de que el cable sea muy sensible al ruido exterior, ya que al haber costado 4€ puede que no sea muy bueno.
Navegando un poco buscando posibles causas a mi problema descubro para mi decepción que el problema puede ser debido por la tarjeta gráfica integrada, la Nvidia G73, ya que se ha informado de que tiene problemas. Otra causa, la más comentada, es que el problema viene debido al sobrecalentamiento al que llega el AppleTV, sobre todo cuando se reproducen películas. Me inclino más a ésto último.

El AppleTV únicamente tiene un ventilador en el procesador pero ninguno para introducir o sacar aire del exterior como podéis ver en la siguiente imagen.

pincha en la imagen para no dejarte los ojos

Este hecho hace que alcance temperaturas cercanas a los 45ºC reproduciendo alguna película, manteniendo una temperatura media de unos 40ºC.

Si ya tenéis un AppleTV la única solución posible si no quieres ver dichos puntos es tener bien ventilado nuestro querido cacharro, comprar unos ventiladores con base especiales para portátiles, con el consiguiente ruido que genera, o conseguir un disipador industrial del tamaño del AppleTV y dejarlo descansando encima de él.

Y si aún no lo tenéis pero queréis compraros uno yo esperaría a ver si modifican el diseño para solucionar este, a mi ver, grave problema.

Actualización: Después de que mi AppleTV pasara unas merecidas vacaciones en el salón encima de un reproductor DVD metálico, parece ser que disipaba bastante calor y ha vuelto a verse bien.
Leer la pencada completa...

17 febrero 2010

Contraseña errónea de Flickr en iPhoto 09


Hace tiempo hice limpia de permisos a aplicaciones en Flickr, y en esa limpieza debí de revocar el permiso para iPhoto. No fue hasta ayer que lo descubrí.

Los carnavales de Badajoz son de los mejores que tenemos en España, aunque son poco conocidos. Recomiendo a todo el mundo que vaya. Nos lo pasamos genial y, como en toda fiesta que se precie, hicimos algunas fotos.
Anoche por fin me decidí a descargar las fotos al iMac. Etiqueté las caras. Geoposicioné todo. Me preparé para subir algunas de ellas a Flickr... ¡Error de contraseña! No hay problema, te vas a preferencias de iPhoto y... ¿dónde narices están las opciones de Flickr, Facebook, etc...? No hay.

Navegando un poco por Internet descubrí la solución y la comparto con vosotros ahora:
Tenéis que abrir el programa "Llavero" (creo que se llama así en castellano) que está bajo Aplicaciones/Utilidades. Buscáis en todas las claves una que se llame "iphoto.apple.com" y la borráis. Volvéis a iPhoto e intentáis subir de nuevo a Flickr y os volverá a pedir que configuréis la cuenta. Sencillo a la par que lioso.

Espero que os sirva.
Leer la pencada completa...

27 enero 2010

¿Más cerca la libre elección de operador con el iPhone?

Esta tarde se espera que salga el tan esperado Tablet de Apple (o como quieran llamarlo). Además se esperan más noticias. Será un a Keynote para recordar por mucho tiempo. Una de esas noticias que seguro que surgirá es que por fin liberarán el iPhone en la mayoría de los países de las teleoperadoras elegidas hace casi ya dos años.
¿Faltará poco para decir adiós a Pepephone y darle un hola a Orange?
Leer la pencada completa...

26 enero 2010

Placebase: el fin de Google para Apple


Últimamente se rumorea que Apple va a sustituir en el iPhone el buscador por defecto al de Yahoo/Bing (ojo, por defecto, pero la opción para poner Google seguirá ahí). Es un movimiento que ciertamente hará mucho daño a Google aunque, sinceramente, el buscador de Yahoo es una caquita. Le he dado muchas opciones y siempre acabo volviendo al de Google. Se dice que este es un punto determinante en la mala relación Apple-Google nacida de su rivalidad en el mercado móvil con sus iPhone-Android. Pero yo no estoy de acuerdo. Es un mero fleco de algo mayor... sigue leyendo.


El detalle verdaderamente clave para ver la mala relación nacida y evolucionada a una futura ruptura es algo que casi no se ha hablado: Placebase.

A día de hoy lo único que verdaderamente ata a Apple a llevarse bien con Google son los mapas. Tanto en iPhoto como en iPhone, Apple depende de Google a la hora de usar todo lo relacionado con geoposición y mapas. Necesitaba en su día un servicio bueno, bonito y barato para dar servicio de mapas a sus aplicaciones, y quién mejor que Google Maps. Apple Se "hipotecó".
Para cambiar esta situación tiró de talonario y en Septiembre/Octubre del 2009 compró la empresa de mapas "Placebase". Según dicen, es un servicio bastante bueno. No obstante había empresas que preferían pagarles a ellos antes que a Google. Por algo será.

Sea lo que sea apuesto mi iPhone a que mañana saldremos de dudas y se escribirán ríos de tinta electrónica sobre un fin anunciado discretamente de la relación Apple-Google.

Leer la pencada completa...

28 septiembre 2009

Apple podría dejar al iPhone en libertad en España


Acabo de leer con alegría que Apple ha acordado con Orange dejar libre de las ataduras de O2 (Telefónica) al iPhone en UK. En realidad no sé si es dejarlo libre o condenarlo de nuevo con dos vigilantes, pero para el consumidor dos es mejor que uno, y si se puede elegir saldrá ganando.

La alegría que os comento no es de saber que nuestros vecinos del norte isleños sigan por delante en cuanto a privilegios tecnológicos, eso me da más bien envidia sana. Me alegro porque puede ser el comienzo de la liberación masiva de iPhones monovigilados como pasa aquí en España con Telefónica, lo cual promueve que dicha compañía haga lo que le sale de los mismos muchas veces con sus clientes. Apostaría que los precios de datos que conlleva conseguir el iPhone no los ha puesto por muto propio la propia compañía, sino que será fruto de un acuerdo con Apple para intentar llegar a más gente, si fuera por Timofónica los hubieran puesto de 25€ para arriba.

Estaba pensando seriamente conseguir algún móvil basado en Android, ya lo intenté una vez como comentaré un día de estos en otra entrada. Y descartaba completamente el iPhone básicamente por dos razones:

  1. El 3GS no tiene todo lo que espero de un móvil hoy en día: Le falta una mejor pantalla (AMOLED por cuestiones de batería) y una mejor cámara.
  2. Telefónica.
Sinceramente creo que si consiguen distribuirlo en España con alguna otra compañía (o por qué no, con todas como acaban haciendo las demás empresas de dispositivos telefónicos) ganaríamos en competitividad lo que se traduciría en reducción de precios en las tarifas, porque en lo que se refiere al precio del propio iPhone me da que lo pone Apple.

Por cierto, ¿os habéis fijado en todas las fotos oficiales del iPhone la fecha y hora que vienen marcadas? Si alguien sabe la respuesta de por qué pasa lo que pasa que lo diga a ver si acierta ;-)

Actualización: Parece ser que también lo venderá Vodafone :-D
Leer la pencada completa...

17 septiembre 2009

Infierno 3.1 con iTunes 9

Si tienes un iPhone pirateado para poder usarlo con la SIM que quieras, actualizaste a iTunes 9 y quieres instalarle el último sistema operativo 3.1 te aviso que te cargues de paciencia antes de hacerlo, por lo menos hora y media de ella.

Ayer me enteré de que sacaron una nueva versión de PwnageTool, la 3.1, que para el que no lo sepa es la mejor (y casi diría única) herramienta para poder hacer jailbreak de iPod Touches y iPhones, además de activar estos últimos. Así que procedí a bajarme dicha utilidad e instalarla.

El iPhone se actualiza por medio de un fichero con extensión .ipsw que es algo así como una carpeta comprimida con el firmware nuevo para el dispositivo, el cual iTunes se encarga de bajar, descomprimir e instalarlo en nuestro querido teléfono.

Para poder usar la herramienta que os hablo básicamente hay que pedirle a iTunes que baje el firmware pero que no lo instale. Después ejecutamos PwnageTool, el cual se encarga de buscar ese fichero, retocarlo, volver a comprimirlo y dejártelo listo para que restaures el teléfono a partir de iTunes. Al hacer esto iTunes te borra toda la información que tuvieras en él y te instala un sistema completamente limpio, jailbrokeado y activado. Hasta aquí es un proceso indoloro y relativamente rápido. No hay que preocuparse de que en medio del proceso te quedes sin tus datos personales, configuraciones, fotos, etc... ya que iTunes hace una copia de seguridad de todo eso cada vez que sincronizas el dispositivo. La verdad es que parece que Apple facilita al máximo el pirateo de sus teléfonos.

En todas las ocasiones que he hecho dicho proceso la parte de la restauración de la información desde la copia de seguridad era muy rápida, en torno a los 5 minutos, siendo un puro infierno la posterior sincronización ya que llenar el iPhone con 8Gb de golpe requiere tiempo, pero ayer no fue todo lo bien que tenía que haber ido. No se si es la conjunción iPhone OS 3.1 y el iTunes 9 o la lluvia que caía en Madrid pero cuando le daba a restaurar la información el iTunes me informaba del progreso, pero el teléfono parecía que no hacía caso a dicha sincronización no mostrando nada en pantalla. Al cabo de 5 minutos pensé que algo no iba bien, tiré el iTunes abajo y desconecté el teléfono... lo volví a intentar... volvió a pasar lo mismo... así que, como tenía prisa, cogí el teléfono limpito de información y me fui.

Cuando regresé a casa, ya con más calma, le dejé que hiciera lo que quisiera y me fui a cenar, cuando volví el teléfono ya informaba de la sincronización, y la barra de progreso en iTunes no llegaba a la mitad ¡y había pasado media hora! Al final tardó una hora. Eso fue ayer por la noche, hoy aun es por la tarde y no he llegado a casa y tengo el teléfono sin canciones, ni podcast, ni ná porque la parte más larga es la de sincronizar con contenidos el teléfono, y si la restauración de los datos personales tardó una hora miedo me da sincronizar el resto.

Así que si vas a usar PwnageTool con la combinación iTunes 9 y el iPhone OS 3.1 mejor que lo hagas un ocioso día de domingo y asegurarte antes de que no vas a necesitar usar el teléfono durante por lo menos hora y media.
Leer la pencada completa...

18 octubre 2007

Ya llega el iPhone


Llevo como unos 10 meses sin escribir, tengo el blog abandonadísimo, pero es algo que no me preocupa demasiado, ya que lo veo como una vía de escape para, muy de vez en cuando, escribir alguna cosa y sentirme bien.
Antes lo hacia en la palm, y la verdad que hubo una temporada que escribía bastante, sobre todo cuando iba al trabajo en el Metro, pero lo abandoné. Hace un año intenté hacer lo mismo pero de una forma más "social", que es lo que se lleva ahora en internet, pero como podréis comprobar lo abandoné pocos meses después: falta de tiempo, y/o muchas cosas en la cabeza.

Lo que ha roto esta racha de incomunicación social 2.0 vía internet ha sido que mañana llega directo desde EEUU, y portado por uno de mis mejores amigos, mi espectacular, increíble, flamante, acojonante... iPhone :-D ¿Se nota que le tengo ganas?

Para matar las horas muertas de interminable espera desde que Pedro me compró el iPhone allá en Yankilandia hasta su llegada mañana, me he estado empollando la forma de desbloquearlo sabiendo que viene con el firmware nuevo, el 1.1.1. Hace una semana solo se podía activar de una forma un poco tediosa, y liberar pagando unos 50$ por usar iPhoneSimFree... hasta que hace unos 3 días se liberó la nueva versión de iNdependence que hace la vida más fácil a la hora de activar el teléfono, y de anySim que salió oficialmente ayer y permite liberar el teléfono de forma gratuita.

Desde que me estoy informando sobre todo el proceso, he visto que hay mucha gente que no sabe muy bien qué hacer, o por qué se hace, y se limitan a seguir manuales poco claros que de no seguirlos bien puede causar que nos quedemos con un bonito, y caro, pisapapeles. Y aunque he dicho que las nuevas herramientas facilitan la vida, requieren un poco de cuidado al usarse. Por eso en cuanto ponga las manos encima al iPhone, y salga del curro, voy a intentar hacer un screencast de todo el proceso, desde que se conecta por primera vez al ordenador hasta realizar la primera llamada con una tarjeta Vodafone (la empresa que se lleva mi dinero todos los meses) y lo colgaré de Youtube. Será mi primer screencast, así que no se ni cuánto tiempo me llevará, ni cómo saldrá :-)

Os informaré por este blog.

Besitos
Leer la pencada completa...