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

24 abril 2011

iPhoneTracker app para PowerPC y MacOS X 10.5 Leopard


Hace unos días salió a la luz que el iPhone guardaba las localizaciones por las que ha estado su usuario cuando tiene activado el seguimiento bien por GPS o bien por triangulación de las antenas de telefonía para posteriormente enviarlas a Apple. A mi personalmente no me gusta este hecho aunque se ponga como excusa que sirve para mejorar el posicionamiento. Por una parte están guardando durante años los lugares por los que has pasado, y por otra envían información sin tu consentimiento expreso, llegando incluso a hacer uso de tu red 3G.

Para demostrar que esta información está ahí, y encima sin encriptar, se desarrolló una aplicación: iPhone Tracker. La aplicación es sencilla: busca en tus backups del iPhone que hace iTunes y te muestra en un mapa del mundo los puntos por los que has pasado. El único problema es que mi mac de diario es un iMac G5 (MacOS X 10.5 Leopard) y la aplicación la han compilado únicamente para macs con procesadores intel y sistema operativo MacOS X 10.6 Snow Leopard. No puedo probar dicha aplicación.
Como me picaba bastante la curiosidad me he bajado el código fuente y, a parte de ojearlo a ver cómo funciona, lo he compilado en binario universal y para Mac OS X 10.5 y posteriores. Aquí os dejo el ejecutable para el que tenga curiosidad.

Descarga iPhoneTracker 1.0u

Un saludo.

Leer la pencada completa...

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...

28 enero 2010

iPad, ¿en casa o en la oficina?

Leyendo las impresiones de los geniales Diego Calleja y Ángel Jiménez de Luis, coincido en que el verdadero éxito (o fracaso) que Apple puede conseguir con su iPad es su software, no su hardware, al igual que hicieron con el iPhone. No será tecnología punta. No tendrá el mejor hardware. Pero tiene el mejor software y eso es innegable aunque se intente. Sigue leyendo...


El iPad es un dispositivo ante todo enfocado en su movilidad como han recalcado en su presentación. Es para usarlo en el lugar que menos te lo esperas, ver tus películas, ver tus fotos, escuchar tu música. En definitiva: un centro multimedia para toda la familia. Ya podemos tirar los reproductores DVD para el coche, los discos duros multimedia, esa microcadena que afea tu salón, ese marco digital que tanto te costó y se ve como la luneta de mi coche esta mañana al ocurrírseme darle al limpia (en un segundo se congeló el agua y tuve que parar para no pegarme un piño). En el iPad tenemos un centro multimedia que funciona. Pero si lo han enfocado a un centro multimedia... ¿qué pinta el Pages, Keynote o Numbers en todo esto?

A parte de iWork, otra cosa que me llama la atención es el teclado que se le puede enganchar. ¿Por qué hacer un teclado y una suite ofimática para un centro multimedia? ¿por qué decir que cualquier proyector funciona con su nuevo aparato? Está claro, o por lo menos a mi me lo parece, que el otro enfoque que le quieren dar es para usarlo en la oficina. Quieren que sea la herramienta perfecta para el jefe de equipo que se dedica a crear hojas de cálculo, documentos y presentaciones. Entrar elegantemente a una reunión con un cacharro de esos y manejarlo con los dedos no tiene precio.

¿Dónde tendrá más éxito? ¿en el mercado doméstico o en el empresarial?


Leer la pencada completa...