¿Es posible usar FileMerge como aplicación independiente?

6

Me pregunto si hay una manera de usar FileMerge como una herramienta independiente. No quiero instalar Xcode, ya que no lo necesito. Solo quiero la aplicación FileMerge. ¿Es eso posible?

    
pregunta Daniel 02.11.2013 - 14:39

2 respuestas

8

FileMerge 2.8, que se envía con enlaces Xcode 5.0.1 a los marcos que se encuentran dentro del paquete Xcode.app. Las bibliotecas compartidas que usa FileMerge se pueden mostrar ejecutando el comando:

otool -L /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge

La salida de este comando indica que FileMerge necesita usar los marcos DevToolsInterface, DevToolsCore y DevToolsFoundation. :

/Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge:
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1247.0.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1052.0.0)
    @rpath/DevToolsInterface.framework/Versions/A/DevToolsInterface (compatibility version 1.0.0, current version 3000.1.0)
    @rpath/DevToolsCore.framework/Versions/A/DevToolsCore (compatibility version 1.0.0, current version 2404.0.0)
    @rpath/DevToolsFoundation.framework/Versions/A/DevToolsFoundation (compatibility version 1.0.0, current version 3001.0.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 852.0.0)

El prefijo @rpath indica que dyld utilice la lista de rutas de ejecución para buscar los marcos a los que se hace referencia. Específicamente, FileMerge contiene "../OtherFrameworks" en su lista de rutas de ejecución. Cuando se encuentran dentro del paquete Xcode.app, esos marcos están justo donde FileMerge espera que estén.

Sin embargo, si copia FileMerge fuera del paquete Xcode.app, FileMerge se bloqueará al iniciarse. Esto ocurre porque los marcos a los que se hace referencia (referenciados anteriormente) no están en la lista de rutas de ejecución, lo que hace que dyld salga con un error de "image not found" . La razón por la que no puede encontrar esos marcos a los que se hace referencia es que no existe una carpeta en la ruta relativa "../OtherFrameworks" , y los marcos no existen en ninguna otra carpeta enumerada en la ruta de ejecución.

Para usar FileMerge sin la aplicación Xcode instalada, tienes un par de opciones:

  1. Copie FileMerge en la ubicación de su elección y copie el contenido de /Applications/Xcode.app/Contents/OtherFrameworks/ en una de las carpetas a las que se hace referencia en la lista de rutas de ejecución ( ~/Library/Frameworks o /Library/Frameworks son probablemente algunas de las mejores opciones) ).

  2. Copie FileMerge a la ubicación de su elección y copie el contenido de /Applications/Xcode.app/Contents/OtherFrameworks/ para que esté en "../OtherFrameworks" con respecto a la aplicación FileMerge (por ejemplo, si FileMerge está en ~/Applications , copie la carpeta "OtherFrameworks" a ~/OtherFrameworks

Editar

La respuesta anterior permite que FileMerge se inicie, pero la aplicación terminará cuando realmente intentes comparar archivos. Al parecer, la aplicación está buscando información de la plataforma en la ruta ../Developer/Platforms/MacOSX.platform/Info.plist . Esto significa que es necesario copiar Info.plist desde /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist a ../Developer/Platforms/MacOSX.platform/Info.plist (relativo a FileMerge.app). Aquí hay algunos pasos que podrían usarse para copiar FileMerge a una carpeta en ~/Applications :

mkdir ~/Applications
cp -R /Applications/Xcode.app/Contents/Applications/FileMerge.app ~/Applications

cp -R /Applications/Xcode.app/Contents/OtherFrameworks/* ~/Library/Frameworks

mkdir -p ~/Developer/Platforms/MacOSX.platform
cp /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist ~/Developer/Platforms/MacOSX.platform
    
respondido por el Eddie Kelley 02.11.2013 - 17:43
-3

Sí, esto es posible.

Abre tu Finder y busca XCode.app. Haga clic derecho y luego "Mostrar contenido del paquete". Encontrarás una carpeta llamada "Aplicaciones". Ahora arrastre File Merge fuera de él y puede eliminar Xcode.

    
respondido por el napcae 02.11.2013 - 14:59

Lea otras preguntas en las etiquetas