2009-06-19 18 views
6

Tengo un proyecto existente en el que estaba trabajando, y recientemente decidí actualizar mi SDK de iPhone y actualizarlo al último 3.0 SDK.Actualización a iPhone SDK 3.0 Causando problemas de UIKit

Actualizo mi SDK y voy a abrir mi proyecto existente. Efectivamente, hay algunos problemas, incluidos algunos problemas de certificados, etc. De todos modos, Google y yo pudimos resolver la mayoría de ellos, pero no he tenido suerte en lo que espero sea el último de mis problemas.

Al ejecutar mi programa en el simulador, ahora consigo

dyld: Biblioteca no cargado: /System/Library/Frameworks/UIKit.framework/UIKit referencia desde: /desarrollador/iGameLib/iGameLib/build/depuración-iphonesimulator/iGameLib.app/iGameLib Motivo: imagen no encontró

Ahora, descubrí la UIKit se ha trasladado a

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0sdk/ System/Library/Frameworks/UIKit

y he actualizado la configuración de mi objetivo y proyecto para apuntar a esa nueva ubicación marco, pero aún cuando lo construyo, no tuve suerte.

También he intentado borrar las aplicaciones y configuraciones del simulador, todavía no tuve suerte.

La referencia de .app se borra cuando ejecuto el elemento de menú "limpio", lo he confirmado, por lo tanto, algo en la configuración de mi proyecto todavía apunta a utilizar la antigua ubicación de UIKit.

¿Dónde debería estar mirando?

He ido tan lejos como puedo para ayudarme pero me temo que estoy perdido aquí. No lo veo bajo la configuración de destino, o la configuración del proyecto, o el plist, o cualquiera de los otros archivos dentro de mi proyecto.

Respuesta

1

He tenido algunos problemas similares con Xcode que parecen no tener una causa aparente. El hecho es que Xcode todavía tiene errores aquí y allá y, a veces, te encontrarás con un muro.

Mi Experiencia: similares a su situación tanto, en una ocasión particular, un proyecto de Xcode que estaba trabajando sólo se detuvo la construcción de una misteriosa razón, y ninguna cantidad de limpieza, buscando en Google o SO-ción me dio ninguna respuesta. Así que simplemente creé un proyecto NUEVO, NUEVO y llené el código fuente de mi proyecto corrupto con el del nuevo proyecto. El nuevo proyecto utilizó el MISMO origen, bibliotecas, recursos, configuraciones, eso sí, y sin embargo se desarrolló sin problemas. Me llevó unos 20-25 minutos realizar la transferencia, pero teniendo en cuenta que había pasado varias HORAS tratando de resolver un error que no se revelaría en el proyecto corrupto, el tiempo valió la pena.

Así que, sugiero hacer lo que hice: Tal vez intente crear un proyecto nuevo y transferir su fuente y recursos anteriores.

buena suerte

+1

Al usar un sistema SCM o las instantáneas integradas de Xcode, si llega a tal circunstancia puede retroceder a versiones anteriores del archivo de proyecto, o incluso diferir el proyecto roto con el trabajo para ver qué cambió. Hay muchas herramientas para probar antes de volver a crear su proyecto como último recurso. – cdespinosa

2
  1. verifica la configuracion de destino
    asegurarse de que está realmente une a todos esos marcos en el Target (check menos "enlace binario con las bibliotecas")

  2. Hacer Asegúrese de haber elegido la sdk 3.0 como su SDK base

  3. Cree un proyecto en blanco y agregue sus marcos como antes; si usted todavía tiene problemas, probablemente un SDK borked instalar

Por cierto, usted no debería tener que volver a añadir marcos SDK, ya que los caminos son en relación con el SDK actual

Sólo trato de ser útil ... no estoy seguro de que pueda depurar desde aquí :)

+0

Entonces, ¿dónde vas a cambiar el sdk 3.0 como tu sdk base? Estoy pensando que ese puede ser el problema de alguna manera. Si es tan simple como cambiar el objetivo de compilación para ser "Simulator - 3.0 | Debug", entonces ya lo hice. ¿Hay alguna otra configuración que me falta para la ubicación del SDK base del iPhone? –

+1

Proyecto> Editar configuración del proyecto> General> Base SDK. Asegúrese de que su objetivo particular (Proyecto> Editar configuración de destino> Compilación> SDK base) no anule la configuración del Proyecto que todos los objetivos comparten. – cdespinosa

4

OK, SO TENGO LA RESPUESTA !!!

En pocas palabras, Xcode no está cambiando todas las variables correctamente en el archivo actual .xcodeproj. Entonces, aquí están los pasos que tomé.

Sal de Xcode, tienes que hacer este trabajo en la terminal. Trae una terminal e ir a donde está tu proyecto. Encuentra tu .xcodeproj y entra como si fuera un directorio. Parece un archivo real en el buscador, pero es uno de esos directorios de paquetes.

Ahora, no pude conseguir textedit para permitir que corrija, pero se puede entrar en nano, así como lo hice

project.pbxproj sudo nano que se encuentra bajo mi archivo .xcodeproj/carpeta/paquete /lo que sea.

En este archivo, debe encontrar dónde está configurado el SDKROOT. Es probable que haya algunos lugares a los que se hace referencia, pero está buscando SDKROOT = iphoneos2.2.1 o algo similar. Cambia TODOS ESTOS (hay algunos) a SDKROOT = iphoneos3.0

Ahora, estás a medio camino allí. hacer ctrl x y guardar el archivo. A continuación, haga ls y descubra qué es el archivo .pbxuser. El mío es myname.pbxuser. ejecutar el mismo comando de

sudo nano myname.pbxuser

En este archivo, hay un número enorme de referencias al directorio del SDK 2.1 iPhone. Haga una búsqueda/reemplazo de iPhoneSimulatorOLDVERSION.sdk, en mi caso fue iPhoneSimulator2.1.sdk y cambie el 2.1 a 3.0. Tenga mucho cuidado con esto, sin embargo, no quisiera saber qué pasa cuando desordene este archivo.

Guárdalo y abre xcode. LIMPIAR el proyecto y compilar y ejecutar. ¡Presto!

+0

La solución de Zach es la respuesta correcta. Debo decir que me sorprende que las respuestas más recientes que simplemente dicen que crean un nuevo proyecto tengan más votos. – pr1001

+1

No debería necesitar hacer esto (de hecho, NO debe haber "números enormes" de rutas específicas de SDK en su proyecto). Lo único que deberías hacer es Proyecto> Editar configuración del proyecto> General y elegir el nuevo SDK desde allí. Si hay otras rutas específicas de SDK en su proyecto, ¿ha arrastrado marcos en su proyecto directamente desde el Finder en lugar de elegirlos con la hoja Agregar marcos existentes? De ser así, verifique sus "Rutas de búsqueda de marco" en su destino y elimine las rutas específicas del SDK que puedan estar allí. – cdespinosa

0

Tuve el mismo problema al usar Xcode 3.2.1 pero se resolvió de una manera más fácil. Me di cuenta de que había desactivado recientemente las variables de entorno de mi objetivo, específicamente las relacionadas con la depuración de memoria (NSDebugEnabled, NSZombieEnabled, NSAutoreleaseFreedObjectCheckEnabled, MallocStackLogging, MallocStackLoggingNoCompact). La aplicación se ejecutó una vez en el simulador después de eliminar las variables de entorno pero nunca más después de eso.

Salir de Xcode, el simulador, reiniciar Xcode y hacer una limpieza completa del objetivo (incluidas sus dependencias fuera del curso) me devolvió a un buen estado.

1

Acabo de eliminar el UIKit.framework de la carpeta 'Frameworks', hago clic derecho y lo vuelvo a agregar. Construcción limpia, y no hay problema ..

+0

Me encontré con el mismo problema, y ​​así también lo arreglé. xcode estaba tratando de encontrar el Framework en el directorio incorrecto, por lo que al volver a agregarlo se le dio a xcode la ruta correcta. –

0

Mismo problema al iniciar mi aplicación sin depuración. En mi experiencia, el binario producido no parece ser el culpable.

Creé una aplicación del asistente de xcode que ejecuta OK en el simulador (llamémosla testApp, mi aplicación se llama myApp), traté de descubrir cuál es la diferencia con mi aplicación.

otool -L myApp da (rutas relativas) correctas a los marcos, igual que testApp

ps -E DYLD_ROOT_PATH, DYLD_FALLBACK_FRAMEWORK_PATH, DYLD_FRAMEWORK_PATH, variables de entorno DYLD_LIBRARY_PATH necesarios por ld para localizar el marco están bien para myApp en comparación con los valores de estas variables cuando se inicia testApp

Sospecho que el problema se encuentra en algún lugar de la comunicación entre XCode y el simulador una vez que se inicia la aplicación ... aunque no puedo encontrar lo que está mal ...

La solución que funcionó (al menos para mí) tiene ciertamente algunos efectos secundarios grandes, pero aquí está: dejar de Xcode navegar por el contenido del paquete myApp.xcodeproj .model1v3 desbloqueo y .pbxuser para la modificación (la cerradura en el panel de información (cmd-I en el archivo)) eliminar estos dos archivos comienzan Xcode y vuelva a intentarlo para iniciar la aplicación desde allí

10

que estaba recibiendo el mismo error

dyld: Biblioteca no cargado:/Sistema/Biblioteca/Frameworks/UIKit.framework/UIKit

La solución en mi caso fue simplemente salir de Xcode y volver a intentarlo.

+0

Esto funcionó para mí también. –

+0

Impresionante, nunca pensé en eso. ¡Pero funcionó! –

+3

¡Funcionó! ¿Por qué Apple contrató a Microsoft para hacer la nueva versión de xCode? – ma11hew28

Cuestiones relacionadas