Tech, Apple, iOS development and Stuff! 

formats

Undefined symbols for architecture i386:Apple Mach-O Linker (id) error

Published on March 19, 2012 by in Apple

En algún momento han copiado algún controlador o alguna clase de Objective-C de un proyecto a otro y obtienen este error?

undefined symbols for architecture i386:Apple Mach-O Linke(id)error

Lo que sucede es que nuestro controlador (o clase) no ha sido agregado al Target de nuestro proyecto. Lo que debemos hacer es seleccionar la clase .m, en mi caso MyViewController.m y desplegar el inspector de propiedades (Properties inspector) para lo cual presionamos command + option + 0 (cero) y veremos que en el área de Target Membership esta nuestro Target con un checkbox a la izquierda:

Properties inspector

Lo que debemos hacer es checkear la opción de Target Membership:

Target membership

Y nuestro problema esta resuelto!

Build succeeded

Espero esto les ayude y les ahorre tiempo valioso para desarrollar!

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Apache on Mac OS X Mountain Lion

Published on March 17, 2012 by in Apple

Hace algun tiempo, Apple anuncio su nuevo sistema operativo Mountain Lion. Por el momento este nuevo sistema operativo esta disponible unicamente para desarrolladores.

No me pude resistir e hice el update de Lion a Mountain Lion. Un compañero de trabajo, me pregunto si funcionaba bien Apache y PHP, pero en ese momento no tenia ningun proyecto para probar, asi que intente levantar un simple script de PHP para probar; lamentablemente no obtuve resultado:

Entonces abri las System Preferences para verificar que la opcion de Web Sharing estuviera habilitada, pero para mi sorpresa Mountain Lion NO TIENE ESTA OPCION!

Esto quiere decir que ahora tendremos que iniciar Apache desde la terminal:

sudo apachectl start

Sin emgargo, Apache no estaba iniciando y los logs mostraban unicamente que “Apache habia terminado con status 1“. Por lo que habia que debuggear un poco mas, entonces ejecute el siguiente comando:

sudo bash -x /usr/sbin/apachectl -k start

Y me mostro la siguiente informacion:

+ ARGV=’-k start’
+ HTTPD=/usr/sbin/httpd
+ test -f /usr/sbin/envvars
+ . /usr/sbin/envvars
++ DYLD_LIBRARY_PATH=/usr/lib:
++ export DYLD_LIBRARY_PATH
+ LYNX=’lynx -dump’
+ STATUSURL=http://localhost:80/server-status
+ ULIMIT_MAX_FILES=
+ LAUNCHCTL=/bin/launchctl
+ LAUNCHD_JOB=/System/Library/LaunchDaemons/org.apache.httpd.plist
+ ‘[' x '!=' x ']‘
+ ERROR=0
+ ‘[' 'x-k start' = x ']‘
+ case $ARGV in
+ /usr/sbin/httpd -k start
httpd: Syntax error on line 114 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_userdir_apple.so into server: dlopen(/usr/libexec/apache2/mod_userdir_apple.so, 10): image not found
+ ERROR=1
+ exit 1

Entonces nos podemos dar cuenta que no puede cargar el modulo mod_userdir_apple.so, entonces abri  el archivo httpd.conf

sudo nano /etc/apache2/httpd.conf

y busque el modulo y comente los dos modulos especificos de Apple:

#LoadModule apple_userdir_module libexec/apache2/mod_userdir_apple.so
#LoadModule bonjour_module libexec/apache2/mod_bonjour.so

Reinicie apache:

sudo apachectl restart

Y me mostro el clasico texto It works! pero no cargo el script que originalmente queria probar, el cual se encontraba en ~/Sites/test.php, por lo que regrese al archivo httpd.conf y apunte el DocumentRoot a:

DocumentRoot “/Users/{user}/Sites”

Reinicie apache de nuevo y ahora ya todo funciono! Espero que este post les ayude a no perder mucho tiempo intentando configurar Apache.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

UUID mismatch detected with the loaded library

Published on January 2, 2012 by in iOS Dev

Hace unos días @chpwn publico en su blog, Spire! la version de Siri para iPhone4, iPhone 3G(S) y iPT 4G!

Luego, como regalo de navidad, @pod2g publico su Untethered Jailbreak para iOS 5.0.1, asi que inmediatamente le hice un restore a mi iPhone con el iOS 5.0.1 y lo libere utilizando RedSn0w 0.9.10b3!

Ya teniendo mi iPhone4 liberado, me lanze a probar Spire, luego de instalarlo y leer varios tutoriales de como hacer funcionar Spire, me di cuenta que era demasiado trabajo y no tengo el tiempo para hacerlo. Pero como Spire solamente ocupa 100MB no lo desinstale para cuando tuviera un poco de tiempo lograra hacerlo funcionar.

Sin embargo, regresando al desarrollo de aplicaciones para iOS, quise probar mi aplicacion y recibi el siguiente error:

warning: UUID mismatch detected with the loaded library – on disk is:
/Users/{user}/Library/Developer/Xcode/iOS DeviceSupport/5.0.1 (9A405)/Symbols/System/Library/Frameworks/{framework}

Entonces comenze a googolear el problema y en todos los foros y sitios donde encontre algun post con el problema, sugerian que la solucion era:

  1. Borrar la carpeta “5.0.1 (9A405)“,
  2. Cerrar XCode,
  3. Desconectar el dispositivo,
  4. Abrir de nuevo XCode,
  5. Conectar el dispositivo,
  6. Entonces el XCode comenzaria a copiar los Symbols necesarios
  7. y eso era todo!

Lamentablemente esto no me funciono! debido a que ese NO era mi problema. Luego recorde que antes de instalar Spire, todo funcionaba bien, entonces lo que hice fue desinstallar Spire! Luego probe de nuevo hacer el deploy hacia mi iPhone y voilà! todo bien!

Al parecer en alguno de los archivos instalados con Spire existe un UUID que definitivamente NO es el del iPhone donde se esta instalando Spire y por eso el XCode se estaba quejando!

Por si a algun developer le ayuda este post, aqui les dejo mi experiencia!

UPDATE: Existe una solucion a este problema, aquí el link, (El articulo esta en frances) Gracias a erond por proveernos el link.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
7 Comments  comments 
© 2012, Ivan Rodriguez
credit