Cómo vaciar cachés y limpiar todos los objetivos Xcode 4 y posterior

238

Jonathan sugiere aquí: Xcode ¡Incluye archivos .xib que se han eliminado!que limpiar todos los objetivos y vaciar los cachés solucionará el problema con Xcode, incluidos los archivos .xib eliminados, pero no puedo encontrar una manera de vaciar el caché en Xcode 4.

¿Cómo hacer eso en Xcode 4?

Tieme
fuente
Aquí está mi [solución de script de shell] [1], que elimina los datos derivados, tanto para xCode 5 como para 6. [1]: stackoverflow.com/a/27977848/1231948
Sheamus

Respuestas:

514

Comando-Opción-Shift-K para limpiar la carpeta de compilación. Aún mejor, salga de Xcode y limpie ~ / Library / Developer / Xcode / DerivedData manualmente. Elimine todo su contenido porque hay un error en el que Xcode ejecutará una versión anterior de su proyecto que está allí en algún lugar. (Xcode 4.2 le mostrará la carpeta de Datos Derivados: elija Ventana> Organizador y cambie a la pestaña Proyectos. Haga clic en la flecha derecha a la derecha del nombre de la carpeta de Datos Derivados).

En el simulador, elija Simulador de iOS> Restablecer contenido y configuración.

Finalmente, para completar, puede eliminar el contenido de las carpetas / var / ; algo de almacenamiento en caché ocurre allí también.

ADVERTENCIA: Eliminar / var / carpetas puede causar problemas, y es posible que deba reparar o reinstalar su sistema operativo después de hacerlo.

EDITAR: Acabo de enterarme de que si tienes miedo de lidiar con / var / carpetas / puedes usar el siguiente comando en la Terminal para eliminar de una manera más específica:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

EDITAR: Para ciertos problemas relacionados con Swift, he encontrado útil eliminar ~ / Library / Caches / com.apple.dt.Xcode . Pierdes mucho cuando haces esto, como tus copias de repuesto de los conjuntos de documentos de documentación descargados, pero puede valer la pena.

mate
fuente
66
Agradable, limpiar la ruta: Biblioteca / Desarrollador / Xcode / DerivedData + restablecer el contenido y la configuración del simulador funciona.
Tieme
10
La ruta parece estar en mi directorio de inicio (nota tilde): ~ / Library / Developer / Xcode / DerivedData Quizás esto fue obvio para otros, pero en caso de que alguien más tenga el problema ...
Victor Van Hee
37
Jeje, siendo un übern00b borré / var / db donde encontré algo que vino de Xcode / mi proyecto. Eso me costó cinco horas de basura en el sistema de archivos, reparación y reinstalación de Lion, etc. ¡Tenga cuidado! :-)
Jonas Byström
44
@Jonas Me sentí obligado a agregar una advertencia al consejo de "eliminar / var / carpetas". ¡No es para los no iniciados!
LearnCocos2D
77
No ejecute rm -rf / var / carpetas con sudo o terminará reparándolo como yo :)
Josip B.
68

Command-Option-Shift-K debería hacerlo. Alternativamente, vaya al menú del producto, presione la tecla de opción, ahora la opción "Limpiar" cambiará a "Limpiar carpeta de compilación ..." seleccione esa opción.

sram
fuente
No, qué mal ... acabo de cambiar y renombrar un archivo xib y limpié la aplicación como dijiste, pero todavía se carga bien sin errores.
Tieme
2
¡Guau, nunca es nuevo acerca de ese truco de tecla alternativa para los menús de Mac OS X! Eso realmente define el significado de "Alt" ernate.
trusktr
20

Además de hacer lo siguiente, puede experimentar este problema si los archivos de Storyboard de su aplicación están localizados. Primero, haga cada uno de estos:

  • Construcción limpia
  • Restablecer simulador
  • Reiniciar Xcode
  • Elimine su DerivedDatacarpeta en ~ / Library / Developer / Xcode / DerivedData
  • Reiniciar computadora

Lo que finalmente funcionó para mí fue volver a generar los archivos de localización del guión gráfico y eliminar la localización en inglés (que no era necesario porque la Configuración regional es en inglés). Para volver a cargar las cadenas de Storyboard, vea esta respuesta en StackOverflow .

Me di cuenta de que las partes sin texto de mi Storyboard se estaban actualizando, pero no el texto localizado. Si tiene una localización en su aplicación, recomendaría verificar para asegurarse de que sus localizaciones estén actualizadas (incluso si son .stringsarchivos).

Sam Spencer
fuente
2
¡Eliminar el contenido (no toda la carpeta) de / var / carpetas lo hizo por mí! Si está buscando /var/folders ... Elija Ir a la carpeta en el menú Ir del Finder e ingrese / var / como la ubicación de la carpeta.
Patricia
+1 en la instrucción / var / carpetas ... la limpieza y eliminación de DerivedData funcionó parcialmente, pero ese fue el truco
EeKay
1
1. Clean Build 2. Reset Simulator 3. Reiniciar Xcode que resolvió mi problema.
Alan Dong
¡ADVERTENCIA! Tenga en cuenta que eliminar contenidos de/var/folders/ puede causar problemas serios y podría tener que reinstalar completamente OSx desde la consola de recuperación!
Magnus W
18

Encontré otra forma además de comando + opción + shift + K. En XCode 4.2 hay un organizador que se puede abrir desde el icono superior derecho. Puede limpiar todos los archivos y las opciones de proyecto guardadas desde allí. Esto ayudó a mi situación (estaba viendo viejos archivos eliminados en el mainBundle).

mert
fuente
3
Sí, eso es una forma más fácil que limpiar ~ / Library / Developer / Xcode / DerivedData manualmente
Tieme
10

Me estaba sacando el pelo de la cabeza porque pensaba que tenía el mismo problema. Al compilar la aplicación, no obtuve el mismo resultado en mi iPhone que en el simulador.

El problema era que de alguna manera había hecho una versión localizada del archivo MainStoryboard.storyboard. Entonces, cuando ejecuté la aplicación en mi teléfono, mostró la versión danesa ... y el simulador mostró la versión en inglés.

Sí, soy nuevo! :)

thehatisonfire
fuente
2
Tuve problemas similares Hizo command-option-shift-K en vano. Eliminado ... DerivedData, no hay solución. Resultó que cambiar el nivel superior XIB solo cambia la versión en inglés, y estaba probando con la versión holandesa del XIB. Suspiro ...
fishinear
1
Además, tenga en cuenta que hay formas de localizar su aplicación donde se crean archivos de texto separados para cada idioma. En tales casos, cambiar el .xib no hace nada.
dandan78
7

Para eliminar todos los datos derivados y el caché del módulo, /var/foldersuse este pequeño script ruby .

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

Esto solo resolvió un fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/error para mí.

orkoden
fuente
1
El error aparente que causa "error fatal: archivo AST malformado o dañado:" No se puede cargar el módulo ", y el error de la solución suave sugerida por Xcode, todavía está ocurriendo en Xcode 6.1. Y la solución para salir de Xcode y limpiar manualmente ~ / Library / Developer / Xcode / DerivedData de forma manual todavía funciona. No necesitaba limpiar todo allí; solo dos subcarpetas: ModuleCache y la subcarpeta cuyo nombre es relevante para el proyecto problemático.
Jerry Krinock
5

Tuve algunos problemas con Xcode 5.1 cuando me abrí la ventana de documentación.

No estoy seguro de la causa, porque también estaba actualizando docsets, mientras abría la ventana.

Bueno, en Xcode 5 el directorio de módulos ahora reside dentro de la carpeta de datos derivados, que por razones obvias no eliminé. Eliminé el contenido de ~ / Library / Developer / Xcode / DerivedData / ModuleCache y ~ / Library / Preferences / com.apple.Xcode.plist y todo parece funcionar, después de reiniciar Xcode.

McUsr
fuente
1

Cuando se usa un "Modelo de datos", hay opciones en el inspector para generar clases, para mí este fue el caso ya que ya había una clase con el nombre existente.

Codegen: lo resolvió por mí.

ingrese la descripción de la imagen aquí

Wayne
fuente
1

Mi "DerivedData" con Xcode 10.2 y Mojave estaba aquí:

MacHD / Usuarios / [MyUser] / Library / Developer / Xcode

Mahdi Moqadasi
fuente
0

Tienes que tener cuidado con el archivo xib. Intenté todo lo anterior y nada funcionó para mí. Estaba usando botones UIB personalizados definidos en el xib, y me di cuenta de que podría estar relacionado con el hecho de que allí había asignado atributos que no estaban cambiando programáticamente. Si ha definido imágenes o texto allí, elimínelos. Cuando lo hice, mis cambios programáticos comenzaron a surtir efecto.

Alyoshak
fuente
0

Aquí está mi solución de script de shell , que elimina los datos derivados y limpia los activos en caché de un proyecto, para Xcode 4, 5 y 6.

A veces, simplemente llamar a rm -rf en el directorio de Datos Derivados deja un archivo persistente o dos, pero mi script se repite hasta que se eliminan todos los archivos.

Sheamus
fuente
0

Intenté casi todo pero no pude evitar, lo que me ayudó fue desactivar SIP (Protección de integración del sistema) n funciona, no sé qué sucede cuándo y cómo, pero el archivo del sistema se confunde en alguna parte y causa esto ... aunque puede haber riesgos para desactivar esto obviamente

aquí es cómo

1. Encienda su Mac y mantenga presionadas las teclas [comando] + [R] para acceder a la partición de recuperación.

2. Desde la partición de recuperación, haga clic en Utilidades en la barra de menú y luego seleccione Terminal.

3. Ingrese el siguiente comando en la Terminal y presione Entrar para ejecutarlo: csrutil disable

4. Una vez que el comando se haya ejecutado, salga de la Terminal y reinicie la Mac. Cuando vuelva a iniciar sesión en OS X, SIP se desactivará.

Castro Zwelithini
fuente
1
Suena arriesgado de hecho. ¿Qué hace SIP?
Tieme
System Integrity Protection protege los archivos y directorios del sistema que están marcados para protección. Básicamente agrega más seguridad a su sistema, limitando incluso el poder del comando sudo
Castro Zwelithini