Cómo 'anular el registro' de un tipo de archivo / MIME con servicios de inicio

3

Estoy trabajando en una aplicación basada en documentos en Cocoa, el archivo es un tipo de paquete (una carpeta que el Finder muestra como un solo archivo como una aplicación).

Tenía todo funcionando perfectamente, pero luego cometí el error de agregar un identificador de tipo de nombre de dominio inverso al tipo de mi archivo en mi info.plist (algo que luego supe que Apple advierte explícitamente de no hacer here ). Bueno, esto rompió de inmediato mi tipo de archivo, los documentos de mi aplicación solo parecen carpetas en el Finder ahora, por lo que no hay ninguna opción 'abrir' o 'abrir con' en ninguno de ellos y la información que contiene está expuesta.

Eliminar el identificador MIME de mi lista y reconstruir no repara el registro del tipo de archivos en los servicios de inicio, ni siquiera después de señalar explícitamente LSRefresh en la compilación (es solo una compilación de depuración).

Por favor, ¿alguno de ustedes, gurús de la terminal, puede decirme cómo eliminar el tipo de archivo de la base de datos de Servicios de lanzamiento? Estoy seguro de que si puedo hacer eso, todo se restaurará la próxima vez que inicie la aplicación.

    
pregunta Jef 18.04.2017 - 01:01

1 respuesta

2

El registro y el registro de aplicaciones y tipos de documentos se realiza con:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister

Para obtener ayuda con el comando, simplemente use la opción h .:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -h

En su caso, intentaría utilizar la opción de desregistrar:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -u <path to bundle>

Dependiendo de su aplicación / paquete, es posible que tenga que anteponer un sudo y / o reiniciar después.

Otro paso es reconstruir completamente la base de datos de servicios de lanzamiento:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

y / o instalando RCDefault.app y tratando de eliminar MIME / bundle / lo que sea posible a veces .

    
respondido por el klanomath 23.04.2017 - 06:05

Lea otras preguntas en las etiquetas