Saltar al contenido

Grapar el comprobante

El paso final que casi nadie hace y que evita que la aplicación falle sin conexión. Qué se grapa, sobre qué artefacto, y cómo se comprueba.

Por qué

Y el síntoma exacto: usuarios en aviones, en trenes o con la red caída que no pueden abrir una aplicación que instalaron cuando sí tenían conexión. O peor: que no pueden abrirla la primera vez, justo tras descargarla, porque su conexión se cortó.

Sobre qué se grapa

Un detalle que confunde: se grapa sobre el artefacto que vas a distribuir, y ese puede no ser el que enviaste.

  • Si distribuyes la imagen de disco, grapa sobre la imagen. El paquete que hay dentro no necesita su propio grapado si la imagen lo lleva — aunque grapar ambos no hace daño.
  • Si distribuyes un instalador, sobre el instalador.
  • Y si distribuyes el paquete directamente comprimido, hay que grapar sobre el paquete antes de comprimirlo, porque un fichero comprimido no admite el comprobante.

El tercer caso es el que se hace mal más veces: grapar y luego comprimir es correcto; comprimir y luego intentar grapar, no funciona.

Comprobar que está

Dos comprobaciones, y las dos van en la puerta de publicación:

Shell
# 1 · ¿tiene el comprobante adjunto?stapler validate MiApp.dmg# 2 · y la definitiva: ¿qué diría el sistema al abrirla?spctl -a -vvv -t install MiApp.app

Y una tercera que reproduce el caso real: desconectar la red, borrar la marca de cuarentena que el sistema pone a lo descargado, y abrir. Si funciona sin conexión, está bien grapado.

Merece hacerla una vez para ver el fallo con los propios ojos: es de las cosas que uno da por hechas hasta que las comprueba.

En la construcción automática

El orden correcto de los pasos, para que quede claro:

  1. Construir el paquete.
  2. Firmar el paquete, de dentro hacia fuera. Nivel 60.2.
  3. Empaquetar en la imagen de disco o el instalador.
  4. Firmar ese contenedor también, si el formato lo admite.
  5. Notarizar el contenedor.
  6. Grapar el comprobante sobre él.
  7. Y verificar las tres comprobaciones.

Los pasos 5 y 6 son secuenciales y el 5 tarda, así que la construcción tiene que esperar. Nivel 61.1.