6 votos

¿Es posible utilizar FileMerge como aplicación independiente?

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

8voto

Jonathan Sampson Puntos 121800

FileMerge 2.8, que se incluye en Xcode 5.0.1, enlaza con los frameworks que se encuentran dentro del paquete Xcode.app. Las bibliotecas compartidas que utiliza FileMerge pueden mostrarse ejecutando el comando:

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

La salida de este comando indica que FileMerge necesita utilizar los frameworks 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 utilizará la lista de rutas de ejecución para buscar los marcos a los que se hace referencia. En concreto, FileMerge contiene "../OtherFrameworks" en su lista de rutas de ejecución. Cuando se encuentran dentro del paquete Xcode.app, esos frameworks están justo donde FileMerge espera que estén.

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

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

  1. Copie FileMerge en la ubicación que elija y copie el contenido de /Applications/Xcode.app/Contents/OtherFrameworks/ a una de las carpetas referenciadas en la lista de rutas de ejecución ( ~/Library/Frameworks o /Library/Frameworks son probablemente un par de las mejores opciones).

  2. Copie FileMerge en la ubicación que elija y copie el contenido de /Applications/Xcode.app/Contents/OtherFrameworks/ para estar en "../OtherFrameworks" en relación con 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 intente realmente comparar archivos. Aparentemente 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 de /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist a ../Developer/Platforms/MacOSX.platform/Info.plist (relativo a FileMerge.app). Estos son algunos de los pasos que podrían utilizarse 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

-3voto

napcae Puntos 1521

Sí, esto es posible.

Abre tu Finder y busca XCode.app. Haz clic con el botón derecho y luego "Mostrar contenido del paquete". Encontrarás una carpeta llamada "Aplicaciones". Ahora arrastra File Merge fuera de ella y podrás eliminar Xcode.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X