Saltar al contenido

De V3 a V4

Tras hablar mucho con vosotros en el Discord, me di cuenta de que el modo manual era demasiado manual e inseguro. Por ejemplo, no permitía el auto-revert; si una actualización manual fallaba, el usuario debía desinstalar y volver a instalar la app, lo cual es una UX terrible.

Mientras tanto, aproveché la oportunidad para daros más libertad y eliminar todos los errores de code que cometí.

npm i @capgo/capacitor-updater@4

Si usas el ejemplo básico en tu app, puedes migrar a la nueva versión con total seguridad. ¡Disfrútalo!

Auto-actualización de self-hosted

Sección titulada “Auto-update self-hosted”

Para vosotros sigue siendo sencillo, los cambios son:

  • El nombre del ajuste de autoUpdateUrl en updateUrl
  • El método del endpoint cambió de GET a POST

Para ti, este es el cambio más importante, ¡pero para mejor! Obtendrás muchísimas mejoras. Lee con atención.

  • autoUpdateUrl pasa a ser updateUrl ya que ahora este ajuste también se puede usar en modo manual
  • Eliminación de cancelDelay y delayUpdate a favor de setDelay
  • Ya no hay versionName en el conjunto
  • Cambio version la clave, que se devolvía como un objeto en la mayoría de las funciones BundleInfo
interface BundleInfo {
id: string;
version: string;
downloaded: string;
status: 'success' | 'error' | 'pending' | 'downloading'
}
  • Se han renombrado los términos confusos (aunque la explicación no sea del todo clara, su uso será mucho más intuitivo):
    • lo que antes se llamaba version ahora se refiere a un bundle
    • id se refiere al antiguo version que era un string aleatorio de 10 caracteres, esto id es la única forma confiable y única de acceder a tus bundles, ejemplo 7Dfcd2RedN.
    • version se refiere ahora al versionName eliges para un bundle, por ejemplo 1.0.0
  • updateUrl pasa de get a post, ya que los custom headers daban problemas a algunos y POST es más lógico, todos los headers anteriores pasan al body y el prefijo cap_ desaparece.
  • versionName el método se elimina en favor de getId
  • list ahora devuelve una lista de BundleInfo
  • Renombrar getId en getDeviceId
  • autoUpdate pasa a ser true por defecto; si usas modo Manual, cámbialo a false.
  • Método getLatest, este método te permite obtener desde tu servidor configurado con updateUrl la última versión disponible.
  • Método setDelay que toman {tipo: “background” | “kill” | “nativeVersion” | “date”, ¿valor? : string} como argumento para establecer el delay en distintos modos.
  • Método next, para establecer la versión en el próximo backgrounding, a diferencia de set que lo hacen al instante.
  • Método isAutoUpdateEnabled, para avisarte si estás en contexto de auto-update
  • Evento downloadComplete cuando la descarga llega al 100%
  • Se añadió un campo obligatorio version en el método de descarga
  • notifyAppReady ahora es obligatorio también en modo manual; si no se llama tras 10 s, la app vuelve a la versión anterior.

@lincolnthree Muchas gracias por iniciar este trabajo, habría sido imposible lograr esta actualización sin ti.

Si estás usando De V3 a V4 para planificar la entrega de live update, conéctalo con Capgo Live Updates para el flujo de trabajo en Capgo Live Updates, Resumen para los detalles de implementación en Overview, Funcionalidades para los detalles de implementación en Features, Comportamiento de actualización para los detalles de implementación en Update Behavior, y Tipos de actualización para los detalles de implementación en Update Types.