pkgbuild paquete creado no se instala correctamente

3

Ahora he usado pkgbuild / productbuild para crear un archivo de producto, que consta de tres paquetes (aplicación, desinstalador, KEXT), que de acuerdo con el instalador se instala bien, sin errores.

El KEXT se coloca correctamente en / Library / Extensions y el script postinstall lo carga muy bien.

Pero mis aplicaciones no se mueven a la carpeta / Aplicaciones / Empresa /. Se crea la carpeta, pero las aplicaciones no se colocan allí.

El proceso de hacer el componente plist + distribution XML es tan simple, así que simplemente no puedo entender lo que el h * ll puede salir mal.

El paquete puede ser "instalado" a través de Pacifist, aunque no se ejecuta el script postinstall.

¿Ayuda?

Actualización:

Fase de análisis (la aplicación reside en la carpeta ./pkgbuild/app_path/):

pkgbuild --analyze --root "./pkgbuild/app_path/" app.plist

Fase de compilación:

pkgbuild --root "./pkgbuild/app_path/" \
         --component-plist ./app.plist \
         --install-location "/Applications/Company/" \
         --identifier "com.company.myapp.pkg" \
         --version "1.0" \
         app.pkg

Luego el archivo del producto, paso 1:

productbuild --synthesize --package app.pkg distribution.xml

distribution.xml luego se modifica con la imagen de fondo correcta, la licencia, etc.

Paso 2:

productbuild --distribution ./distribution.xml output.pkg

(omití el paquete KEXT ya que funciona perfectamente)

Al instalar "output.pkg", se crea la carpeta / Aplicaciones / Empresa / pero está vacía.

RESOLVIÓ (vea la respuesta de Graham a continuación):

Al establecer BundleIsRelocatable en los archivos plist del componente en false , las aplicaciones se colocan en el lugar correcto.

Al ver el registro del instalador, la aplicación se "reubicó" en el lugar donde mi proyecto Xcode creó la aplicación, pero aún así crea la carpeta / Aplicación / Compañía. Un comportamiento "ligeramente" peculiar diría.

La versión de OSX es 10.11.1.

    
pregunta Robert 11.12.2015 - 11:42

1 respuesta

4

Aplicaciones movidas

Es probable que el instalador esté actualizando la primera copia de la aplicación que encuentra y no la aplicación en la ubicación de instalación predeterminada.

Este comportamiento es deliberado y permite a los usuarios mover aplicaciones, al tiempo que conserva la capacidad de usar los paquetes del instalador para aplicar actualizaciones.

Como desarrollador, probablemente tenga numerosas copias de la aplicación de destino en su Mac. Es probable que la última copia que usted o Xcode lanzó sea la que se está actualizando. Esto puede incluir copias dentro de las carpetas de compilación ocultas.

Imponer la ubicación con BundleIsRelocatable

La configuración de la bandera BundleIsRelocatable en false obliga a Installer.app a usar la ruta exacta proporcionada por el paquete.

Sin este conjunto de indicadores, Installer.app buscará en la Mac de destino las aplicaciones que coincidan y escribirá la nueva copia en la ubicación descubierta.

  • Pruebe su instalador con una Mac limpia con una copia nueva de OS X.
  • Observe detenidamente la salida del registro de Installer.app o installer ; Verá entradas relacionadas con la búsqueda y la ubicación final de la aplicación reubicada.

Reportar el error

Que el instalador todavía creó la carpeta de la empresa matriz se siente como un error. informe de un error con Apple .

    
respondido por el Graham Miln 11.12.2015 - 15:29

Lea otras preguntas en las etiquetas