Delirios de un Informático

Cómo instalar extensiones PHP en Mac OS X

Además de poder utilizar PECL es posible compilar e instalar cualquier extensión de PHP en Mac OS X. Resulta útil si es necesario que los parámetros de ./configure sean diferentes de los que se usan por defecto o si se necesita instalar una extensión que no tenga Mac de serie.

Los únicos requisitos son disponer de Xcode y descargar la versión exacta que esté instalada en Mac (la 5.3.6 en Lion). Luego, el proceso es sencillo (tomaré como ejemplo la extensión pdo_odbc):

wget http://es2.php.net/get/php-5.3.6.tar.gz/from/es.php.net/mirror
tar xzvf php-5.3.6.tar.gz && cd php-5.3.6/ext/pdo_odbc
phpize
./configure --with-pdo-odbc=iODBC
make
sudo cp modules/pdo_odbc.so /usr/lib/php/extensions/no-debug-non-zts-20060613/

Luego basta añadir la correspondiente línea al php.ini y reiniciar el servidor web :).

Error “Valid signing identity not found” en Xcode

Tras instalar Mac OS X Lion de cero, instalar Xcode y crear los Provisioning Profiles para desarrollo, me encontré con el error Valid signing identity not found que provoca que no se pueda testear en el dispositivo ningún software. Al abrir el Organizer de Xcode pude ver también el error Xcode could not find a valid private-key/certificate pair for this profile in your keychain. Como creí haber instalado todo lo necesario en base a la documentación que tenía de cuando lo hice por primera vez hace más de un año, me puse a buscar para no perder demasiado tiempo…

No tardé en encontrarme la solucion en stackoverflow indicando que es necesario exportar las claves privadas de los certificados de desarrollo desde el equipo/sistema anterior e importarlos en el nuevo:

  • Abrir Acceso a llaveros
  • Marcar Inicio de sesión arriba y Certificados abajo
  • Exportar las claves privadas de los certificados iPhone Distribution y iPhone Developer
  • Importar los archivos .p12 en el nuevo equipo

Completados estos pasos, desaparece el error se pueden volver a probar las aplicaciones en los dispositivos :).

Versiones “archivadas” de Xcode para Snow Leopard y Lion

Con el lanzamiento de Mac OS X 10.7 Lion, Xcode se proporciona a través del odioso Mac App Store que añade una aplicación que no es más que un instalador. Para los neuróticos como yo que quieren el instalador tradicional en formato DMG para guardarlo y poder reinstalarlo en cualquier momento en otros equipos o tras una reinstalación, Apple proporciona esta página de descargas para desarrolladores descargar los instaladores de versiones archivadas de Xcode, así como otro software útil para programadores :).

Cómo instalar DOSPad en un iPad sin Jailbreak

Tras haber conseguido instalar ScummVM en el iPad recordé que hace tiempo estuvo disponible en el App Store una aplicación llamada iDOS que fué retirada un par de veces por incumplir los términos de uso, ya que permitía la introducción de binarios en el dispositivo con el evidente peligro que eso supone. Como el proyecto en el que se basa es de código abierto (DosBox) es posible descargarlo, compilarlo e instalarlo de forma que no haga falta hacer el dichoso Jailbreak.

Antes de continuar, hay que diferenciar iDOS de DOSPad. El primero es la versión para el App Store y hace uso de librerías como CoreMIDI pero el segundo permite añadir cualquier juego o programa mediante iTunes File Sharing, por lo que es mejor opción.

Lo primero, es descargar el código fuente:

svn checkout http://dospad.googlecode.com/svn/trunk/ DOSPad && open DOSPad/dospad.xcodeproj

Con Xcode abierto, será necesario modificar seleccionar en el desplegable de Schemes el elemento dospad | iPad de David (4.3.3) (evidentemente ahí aparecerá el nombre y la versión de tu dispositivo) y habrá ciertos valores del proyecto para poder realizar la compilación sin problemas. Para simplificar, hay que dejar todos los valores como la siguiente captura:

Estos valores han de completarse para cada uno de los elementos de Targets (añadiendo los elementos en Valid Architectures si no aparecen). Luego, al pulsar Run se compilará e instalará en el dispositivo.

Una vez instalado es posible añadir juegos y software mediante iTunes, copiando los datos desde Dispositivos » iPad de David » Aplicaciones » Compartir Archivos » DOSPad Beta. Todo lo que se copie estará disponible en la unidad C:\ desde el emulador, aunque sólo se pueden copiar archivos sueltos y no carpetas por lo que habrá que recurrir a carpetas comprimidas en ZIP (el comando unzip viene de serie) o directamente ejecutables de instalación.

Cómo instalar ScummVM en un iPad sin Jailbreak

El proyecto ScummVM se caracteriza por haber logrado portar el código a multitud de plataformas pero que por desgracia no está oficialmente disponible en el App Store para dispositivos iOS debido a Apple y su restrictiva política de aprobaciones. La alternativa pasa por hacer Jailbreak (perdiendo la garantía) y utilizar Cydia para instalarlo. Pero para los que podemos disponer de una licencia de desarrollador, podemos compilar el código fuente e instalarlo en nuestros dispositivos de una forma relativamente fácil.

Sólo he conseguido compilar e instalar correctamente con la versión 1.2.0/1.2.1 de ScummVM usando Xcode 4.0.2. Realmente no es demasiado importante porque la versión 1.3.0 no implementa apenas mejoras específicas para iOS excepto el soporte general para los juegos de Sierra.

Asumiendo una instalación funcional de Xcode y un iPad con sus certificados de desarrollo, el proceso para ScummVM 1.2.1 es el siguiente:

wget https://download.github.com/scummvm-scummvm-v1.2.1-0-ga9391bb.tar.gz
tar xzvf scummvm-scummvm-v1.2.1-0-ga9391bb.tar.gz
mv scummvm-scummvm-c48b15a ScummVM && cd ScummVM/dists/iphone/
wget http://worldsmainorganization.org/scummvm/scummvm-iphone-libs.tar.gz
tar xzvf scummvm-iphone-libs.tar.gz
open scummvm.xcodeproj

Una vez abierto Xcode habrá que crear un nuevo Scheme (junto en el desplegable a Run/Stop) especificando en Target el valor ScummVM-iPhone. Una vez creado, habrá que seleccionar el dispositivo que usemos para desarrollo en el desplegable. También será necesario añadir los juegos en la propia aplicación ya que no es posible añadirlos de otro modo, y se hace pulsando con el botón derecho sobre el directorio Resources del proyecto en explorador de la izquierda y luego accediendo a Add Files to “scummvm”. Yo he añadido una carpeta llamada games con todos los juegos que me interesan, cada uno en su subdirectorio.

Con esto tendremos el código listo para compilar y bastará pulsar Run para tenerlo funcionando en nuestro iPad, y para añadir los juegos es necesario pulsar Add game » Go up » ScummVM.app y autodetectará todos los juegos que se hayan añadido al directorio Resources 🙂

También resulta interesante poder transferir los juegos salvados desde y al dispositivo, por lo que puede editarse el archivo Info.plist para añadir el siguiente código:

<key>UIFileSharingEnabled</key>
<true/>

De este modo se habilitará la posibilidad de compartir archivos desde iTunes pudiendo hacer copias de seguridad de los juegos salvados o transferir los ya existentes. En la imagen se puede ver cómo ScummVM organiza los archivos en el directorio compartido:

NOTA: la aplicación puede funcionar tanto en formato vertical como horizontal pero casca al rotar una vez abierta, por lo que recomiendo usar el bloqueo de orientación y arrancar la aplicación en la orientación que vaya a usarse.