ios - ¿Por qué mis complementos Xcode(como el formato clang) instalados con Alcatraz ya no funcionan después de actualizar a la nueva versión de Xcode?
iphone updates (9)
Hoy actualicé a Xcode 6.3.2 y no puedo ejecutar el formato del código Clang, parece que ni siquiera está instalado. Cada vez que actualizo Xcode, tengo que reinstalar Alcatraz y la mayoría de los paquetes (¿por qué?) Para que funcionen en la nueva versión de Xcode.
Esta vez reinstalé todos los paquetes (como VVDocumenter, Color picker, etc.), pero ClangFormat no funciona, ni siquiera aparece en el menú "Editar". ¿Alguna idea de por qué?
por cierto. Traté de reiniciar Xcode, así como la Mac en sí :)
EDITAR (Solución):
Solución para Xcode 6.3.x (si esto no funciona, use la solución general a continuación).
En la terminal, ingrese lo siguiente:
find ~/Library/Application/ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 9F75337B-21B4-4ADC-B558-F9CADF7073A7
Solución general
Obtenga el nuevo UUID a través de la terminal:
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
Agregue el nuevo UUID a la clave DVTPlugInCompatibilityUUIDs en el complemento (su archivo xcplugin -> muestre el contenido del paquete -> Contenidos / Info.plist
A menudo, lo siguiente ayuda: reinstalar Alcatraz , reiniciar Xcode, desinstalar y volver a instalar su complemento. A veces, es útil reiniciar Xcode nuevamente. Esto funcionó para mí.
Si su complemento aún no aparece, es probable que la clave de compatibilidad de su nuevo Xcode aún no esté incluida en la lista de teclas de compatibilidad de su complemento.
Soluciones posibles:
- Espere una actualización del complemento que incluye el nuevo UUID de Xcode
- Si no desea esperar (por ejemplo, si instaló una versión beta de Xcode y le tomaría demasiado tiempo actualizar los complementos), puede agregar manualmente el nuevo UUID de Xcode al complemento (detalles sobre cómo hacerlo) esto ve abajo). Por supuesto, no hay garantía de que tu complemento funcione entonces. Si Xcode ha cambiado para que ya no sea compatible, por supuesto, no funcionará. Sin embargo, a menudo funcionará.
Para agregar el nuevo UUID al complemento:
En la terminal, ingresa lo siguiente si usas Xcode 6.3.2:
find ~/Library/Application/ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add E969541F-E6F9-4D25-8158-72DC3545A6C6
Para otras versiones de Xcode, obtenga el UUID de Xcode a través del terminal: por defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
y defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
para actualizar el UUID en el comando de find
anterior.
[En lugar de usar el comando find
anterior, también puede agregar manualmente el nuevo UUID a la clave DVTPlugInCompatibilityUUIDs
en el paquete del complemento (su archivo xcplugin
-> mostrar contenido del paquete -> Contents/Info.plist
)]
Fuentes: GitHub y publicado por " ianmasters "
Después de instalar Xcode 6.4, elijo "Omitir paquetes", no puedo encontrar Alcatraz.
Fisrt intento agregar el UUID, pero Alcatraz tampoco funciona;
Entonces prueba esto:
defaults read com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4
En iTerm mostrar a continuación:
allowed = {
};
skipped = {
"com.mneorr.Alcatraz" = {
version = 1;
};
};
pero este archivo no puede editarse, así que elimine:
defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4
A continuación, reinstalo Alcatraz, Xcode muestra "Load Bundles" nuevamente, esta vez no lo haré mal, elija "Load Bundles".
Este script actualiza los UDID para sus complementos y garantiza que se le pida que cargue los paquetes:
#!/bin/bash
xcodeUUID=`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`
echo $xcodeUUID
xcodeVersion=`defaults read /Applications/Xcode.app/Contents/Info.plist CFBundleShortVersionString`
echo $xcodeVersion
find ~/Library/Application/ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add $xcodeUUID
defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-$xcodeVersion
Esto me ha funcionado desde Xcode 6.3.2
http://pablin.org/2015/05/27/re-enable-alcatraz-on-xcode-6-dot-3-2-or-newer/
Intenta construir desde la fuente en lugar de instalar usando el comando curl. Por alguna razón, nada de lo que hice con el comando Curl funcionó para mí, incluido el cambio del UUID. Así que borré todo de la carpeta del plugin y descargué el master e hice una compilación. Reinicia xCode y acepta el diálogo. Quizás esto te ayude.
La clave de compatibilidad de complementos no funcionó para 6.3.2 / 6.4.b2
Veamos este hilo: https://github.com/omz/Dash-Plugin-for-Xcode/issues/37 - tienen un problema y una solución.
Resumen general : XCode sí cambió la forma de cargar complementos (los plugins personalizados se cargan primero), por lo que es necesario realizar algunos cambios de código.
Puede usar este script para actualizar el complemento de su Xcode después de la actualización (funciona bien con Xcode 7.3):
#!/bin/bash
xcodeUUID=`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`
echo $xcodeUUID
find ~/Library/Application/ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add $xcodeUUID
o copia de mi esencia https://gist.github.com/MaciejGad/86302b6b8bdb1ee25115
Resulta que Xcode ahora tiene una lista blanca / lista negra de paquetes habilitados. Puede verificarlo desde la Terminal ejecutando:
$ defaults read com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.3.2
{
allowed = {
};
skipped = {
"com.mneorr.Alcatraz" = {
version = 1;
};
"com.onevcat.VVDocumenter-Xcode" = {
version = 1;
};
"com.travisjeffery.ClangFormat" = {
version = 1;
};
};}
La mala noticia es que el mensaje para cargar los paquetes no volverá a aparecer, incluso si reinstala Alcatraz. La solución es simple, simplemente borre la lista blanca / lista negra ejecutando:
defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.3.2
y vuelva a abrir Xcode para que se le vuelva a preguntar (y esta vez, asegúrese de hacer clic en "Cargar paquetes").
Publicación original aquí: vuelve a habilitar Alcatraz en Xcode 6.3.2 o posterior
Utilice el código general para "todas las versiones" de Xcode en el terminal, luego reinicie Xcode, todo estará bien:
find ~/Library/Application/ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add defaults read /Applications/Xcode.app/Contents/Info.plist DVTPlugInCompatibilityUUID
Tenga en cuenta que el código ha combinado el código de otras respuestas.
Si la versión de su Xcode es 6.3.2, el código anterior es igual a
find ~/Library/Application/ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add E969541F-E6F9-4D25-8158-72DC3545A6C6
Cuando su Xcode es 6.3 o 6.3.1, es igual a:
find ~/Library/Application/ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 9F75337B-21B4-4ADC-B558-F9CADF7073A7
Puedes encontrar que la diferencia es el código al final, es el sentido de Xcode, así que podemos obtener el nuevo uuid de Xcode usando esto
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
y cambiarlo al final de ese código.
Si esto aún no funciona, es posible que no haya elegido "paquete de carga" en la alerta de Alcatraz
Si ha elegido "omitir paquete", puede hacer esto
- recarga Alcatraz
- la alerta de Alcatraz aparecerá nuevamente, paquete de carga de elección
- use el código de arriba en termal
- recarga Xcode
- con éxito 🍻 !!
EDITAR: Lo he intentado, solo necesito volver a usar el código general en la terminal, la alerta volverá a aparecer, seleccionarla, estará bien.