> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Descripción general de Custom Apps

> Descripción general de las aplicaciones personalizadas en Iru Endpoint para Mac y Windows. Conoce los formatos de paquete compatibles, los scripts de instalación, las opciones de implementación y el control de versiones.

<Callout icon="list-check" color="#B84A7A" iconType="regular">Los Library Items de Custom App están disponibles para computadoras Mac y computadoras Windows</Callout>

Iru Endpoint te permite cargar e implementar aplicaciones personalizadas en tus dispositivos inscritos. Usa el Library Item **Mac Custom App** para computadoras Mac o el Library Item **Windows Custom App** para computadoras Windows. Ambos te permiten elegir si instalar una vez por dispositivo o aplicar la aplicación de forma continua, y ambos admiten un tamaño máximo de carga de **5 GB**.

### ¿Qué son las Custom Apps?

Las Custom Apps son Library Items basados en instaladores que cargas y configuras en la Library. Las asignas a Blueprints para implementarlas en computadoras Mac o Windows. Las opciones incluyen instalar una vez por dispositivo, aplicación continua o (en Mac) ofrecer la aplicación en Self Service.

### Por plataforma

Selecciona tu plataforma a continuación para ver los tipos de instaladores, las opciones de configuración y las instrucciones paso a paso.

<Tabs>
  <Tab title="Mac" icon="apple" iconType="brands">
    El Library Item **Mac Custom App** te permite implementar aplicaciones personalizadas (PKG, DMG, ZIP) en computadoras Mac. Carga instaladores, configura las opciones de auditoría e instalación (incluidos scripts previos y posteriores a la instalación) y asigna el Library Item a Blueprints. Puedes ofrecer aplicaciones a través de Self Service o aplicarlas automáticamente en el check-in. Las secciones a continuación cubren los tipos de instaladores compatibles, las opciones de ejecución, los scripts, Self Service y la solución de problemas.

    ### Instaladores

    Iru Endpoint admite varios tipos de instaladores diferentes para Mac:

    * **.PKG**: Iru Endpoint admite archivos PKG y MPKG comprimidos.
    * **.ZIP**: Con los archivos ZIP, puedes especificar dónde se debe descomprimir el contenido.
    * **.DMG**: Los archivos DMG se extraen en la carpeta /Applications. Si tu DMG contiene un PKG, extrae primero el PKG y cárgalo en su lugar.

    <Note>
      El tamaño máximo de carga de archivos de Iru Endpoint es de 5 GB.
    </Note>

    ### Opciones de instalación

    #### Frecuencia de ejecución

    Según la aplicación que quieras implementar, puedes especificar si Iru Endpoint debe instalarla una vez o supervisarla continuamente y asegurarse de que esté instalada.

    * **Instalar una vez por dispositivo**: Iru Endpoint instala la Custom App una vez. Si la aplicación se elimina de la Mac, no se reinstalará automáticamente. Usa esta opción para parches de software que no deben ejecutarse de forma continua.

      * Si un script previo a la instalación falla, el Iru Agent no intentará instalar la Custom App y volverá a ejecutar este Library Item de Custom App en el siguiente check-in.
      * Si un script posterior a la instalación falla, el Iru Agent volverá a ejecutar este Library Item de Custom App en el siguiente check-in, independientemente de si la Custom App se instaló correctamente.
    * **Audit and enforce**: Iru Endpoint ejecuta el script de auditoría y se asegura de que pase (salga con 0) en cada check-in, incluso antes de la primera instalación. Si el script de auditoría sale con un valor distinto de 0, Iru Endpoint reinstala la aplicación automáticamente.
    * **Instalar a petición desde Self Service**: El elemento solo se ofrece como instalación opcional desde Self Service. Después de la ejecución, el botón **Install** se convierte en **Reinstall**.

    #### Consideraciones sobre los scripts de auditoría

    Los scripts de auditoría te dan control sobre lo que se considera un resultado satisfactorio. ¿La aplicación debe estar en una ubicación específica? ¿Tener una suma de comprobación concreta? ¿Estar en una versión determinada? Puedes comprobar todo esto con un script de auditoría.

    Ejemplo: este script de auditoría comprueba la presencia de una aplicación; si no está presente, el script indica a Iru que la reinstale.

    ```bash audit-app-presence.sh icon="terminal" lines theme={null}
    #!/bin/bash
    APPPATH="/Applications/zoom.us.app"
    if [ -e "$APPPATH" ]; then
    exit 0
    else
    exit 1
    fi
    ```

    Para aplicar una versión específica de una aplicación instalada, usa el [script Minimum Enforced Version](https://github.com/kandji-inc/support/blob/main/Scripts/audit-enforce-scripts/minimum_enforced_version.zsh) disponible en nuestro [GitHub de soporte de Iru](https://github.com/kandji-inc/support/).

    #### Scripts previos y posteriores a la instalación

    Los scripts previos y posteriores a la instalación te permiten personalizar el proceso de instalación de las Custom Apps. Usa un script previo a la instalación para eliminar otra aplicación que se está reemplazando. Un script posterior a la instalación puede configurar la Custom App que se acaba de instalar.

    #### Consideraciones sobre Self Service

    Hay consideraciones importantes al usar Custom Apps con Self Service.

    * Cuando la opción de aplicación de una Custom App está establecida en **Instalar y aplicar de forma continua** o **Instalar una vez por dispositivo**, aún puedes mostrar este elemento en Self Service. Esto es útil si los usuarios necesitan reinstalar el software.
    * Cuando la opción **Enforcement** de una Custom App está establecida en **Instalar a petición desde Self Service**, la aplicación no se instalará hasta que el usuario la instale desde Self Service.

      * Al instalar a través de Self Service, se instala la versión más reciente de la aplicación.
      * Iru Endpoint asume automáticamente la administración de las aplicaciones con licencia que no son de App Store si están establecidas en **Instalar a petición desde Self Service** (siempre que el bundle ID coincida con la versión de Apps and Books). Se respetan tus ajustes de actualización globales o por aplicación.

    #### Reinicio

    Algunas aplicaciones requieren un reinicio después de la instalación para funcionar correctamente. Iru Endpoint puede activar el reinicio para garantizar el funcionamiento adecuado. Marca la casilla **Reiniciar después de una instalación correcta** para que Iru Endpoint reinicie la computadora después de instalar la Custom App.

    <Note>
      Los usuarios verán una cuenta regresiva de 30 minutos antes de que se produzca el reinicio.
    </Note>

    #### Ajustes de Liftoff

    En la parte inferior de la Mac Custom App, expande **Advanced Settings**. En **Configuración de Liftoff**, encontrarás **Procesar este Library Item**. Este ajuste elige cuándo se instala la aplicación en relación con [Iru Liftoff](/es/endpoint/library/library-items-profiles/configure-the-liftoff-library-item). Se aplica a Automated Device Enrollment y a la inscripción manual.

    * **During Liftoff** (predeterminado): La Custom App se procesa durante Liftoff, y Liftoff no se completa hasta que termina. Aparece en la pantalla Install, a menos que se seleccione **Ocultar en Liftoff**.
      * **Ocultar en Liftoff**: Si se selecciona, este Library Item aún se procesa durante Liftoff, pero no se muestra en la pantalla Install. Mientras se procesa, Liftoff muestra **Procesando configuraciones adicionales obligatorias antes de continuar…** en la parte inferior de la pantalla. Este ajuste no afecta el orden.
      * **Friendly name** (opcional): Si se especifica, Liftoff muestra este nombre en lugar del **Nombre** del Library Item. El Iru Agent sigue ordenando los Library Items por **Nombre** durante el check-in.
    * **Después de Liftoff**: La Custom App no se procesa durante Liftoff y no aparece en la pantalla Install. Se instala en un check-in posterior del agente.

    <Note>
      Si esta Custom App también está incluida en **Instalar Library Items durante el Asistente de configuración** en el [Library Item Automated Device Enrollment](/es/endpoint/enrollment/apple/configuring-apple-enrollment#install-library-items-during-setup-assistant), se seguirá instalando durante el Asistente de configuración. **Procesar este Library Item** no cambia esa instalación.
    </Note>

    #### Estado

    La pestaña de estado de un Library Item de Custom App muestra qué dispositivos Mac están esperando que se instale la aplicación, cuáles tienen instalaciones correctas y cuáles están en estado **Error** después de problemas de instalación. El estado **Error** genera una alerta; consulta nuestro artículo de soporte [Alertas globales](/es/endpoint/devices/global-alerts) para obtener más detalles.

    ### Instrucciones paso a paso

    Para obtener instrucciones paso a paso, consulta [Configurar el Library Item Mac Custom App](/es/endpoint/library/library-items-profiles/configure-the-custom-apps-library-item).

    ### Solución de problemas

    <AccordionGroup>
      <Accordion title="Advertencia de Gatekeeper al instalar desde un zip">
        Si el archivo zip contiene un paquete y ves una advertencia de notificación de Gatekeeper en una Mac durante el proceso de instalación de la aplicación personalizada, ejecuta este comando desde una sesión de Terminal sobre el paquete para borrar el bit de cuarentena antes de comprimir y cargar el archivo de instalación en Iru.

        ```bash clear-quarantine.sh icon="terminal" theme={null}
        xattr -dr com.apple.quarantine "/path/to/package.pkg"
        ```
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Windows" icon="microsoft" iconType="brands">
    El Library Item **Windows Custom App** te permite implementar y administrar aplicaciones de Windows (MSI, EXE) en computadoras Windows. Carga un instalador comprimido, configura los comandos de instalación y desinstalación, define la lógica de detección y asigna el Library Item a Blueprints. El instalador comprimido puede contener archivos individuales o directorios de archivos. La aplicación comienza en un plazo de 15 minutos para los dispositivos en línea. Todos los instaladores se ejecutan en el contexto del sistema. Las secciones a continuación cubren los instaladores, los ajustes de aplicación y detección, los comandos, la arquitectura, la seguridad y la solución de problemas.

    Para saber lo que ven los usuarios finales cuando hay actualizaciones pendientes de **Auto App** o **Windows Custom App**, incluida la lista **Actualizaciones** de la bandeja del sistema de Iru y [cuándo se debe cerrar primero una aplicación en ejecución](/es/endpoint/library/library-items-profiles/user-experience-with-windows-apps#when-an-app-must-close), consulta [Experiencia del usuario con aplicaciones de Windows](/es/endpoint/library/library-items-profiles/user-experience-with-windows-apps#app-updates-in-the-iru-system-tray).

    ### Instaladores

    Carga un archivo **.zip** que contenga el instalador (MSI o EXE) y cualquier archivo o carpeta de soporte. El instalador se descarga en el dispositivo y se expande localmente antes de que se ejecute el comando de instalación, por lo que la instalación no depende de la disponibilidad de la red en el momento de la ejecución. Las cargas se pueden reanudar; si se produce una interrupción de la red, la carga continúa donde se quedó.

    <Note>
      El tamaño máximo de carga de archivos de Iru Endpoint es de 5 GB.
    </Note>

    ### Opciones de instalación

    Controla cómo Iru aplica la aplicación en los dispositivos de destino.

    * **Instalar una vez por dispositivo**: Iru instala la aplicación en los dispositivos que aún no la tienen. Una vez instalada, Iru no reinstala la aplicación si un usuario la elimina manualmente.
    * **Instalar y aplicar de forma continua** (predeterminado): Iru instala la aplicación y la reinstala si se elimina o se detecta que no está presente en check-ins posteriores.

    ### Plazo de aplicación

    Controla si esta versión de la aplicación se aplica inmediatamente o después de un período de gracia. Establece **Enforcement deadline** en una de las siguientes opciones:

    * **Immediately** (predeterminado): La aplicación se aplica lo antes posible después de la asignación. Las nuevas instalaciones comienzan en un plazo de 15 minutos para los dispositivos en línea.
    * **By enforcement deadline**: La aplicación intentará instalarse antes de la fecha límite de aplicación si la aplicación no está abierta. En la fecha límite, la instalación pasa a ser obligatoria en los dispositivos que aún no la han instalado.

    Cuando se selecciona **By enforcement deadline**, aparecen dos campos adicionales:

    * **Enforcement after version is saved**: Cuánto tiempo después de guardar el Library Item comienza la aplicación. Predeterminado: **2 weeks**.
    * **Enforcement deadline time**: La hora del día en que la aplicación surte efecto en la fecha límite. Predeterminado: **12:00 PM (Noon)**.

    ### Detalles de la aplicación

    * **Editor**: La organización o persona que produjo la aplicación.
    * **Nombre**: El nombre para mostrar de la aplicación. Se muestra en la Library y en las vistas de estado del dispositivo.
    * **Versión**: Una cadena de versión para esta versión de la aplicación. Texto libre; no se valida con respecto al control de versiones semántico.
    * **App icon**: Carga una imagen `.png` para representar la aplicación en la Library. Arrastra el archivo al área de carga o selecciona **choose file**.
    * **Upload app**: Carga un archivo `.zip` que contenga el instalador y cualquier archivo o carpeta de soporte. Arrastra el archivo al área de carga o selecciona **choose file**.
      * El zip debe contener el instalador (MSI, EXE) junto con cualquier archivo al que haga referencia tu comando de instalación.
      * Estructura el zip para que las rutas relativas de tu comando de instalación se resuelvan correctamente una vez que el contenido se expanda en el dispositivo.

    ### Lógica de detección

    La lógica de detección le indica a Iru si la aplicación está presente en un dispositivo. Se requiere al menos un método de detección. Iru ejecuta la detección cuando el agente hace check-in para determinar si la aplicación debe instalarse o si ya está presente.

    Selecciona un tipo de detección en el menú desplegable **Detection logic rules**. Las opciones aparecen de arriba abajo como **MSI**, **File**, **Folder** y luego **Registry**.

    #### MSI

    Detecta si un paquete MSI específico está instalado por su Product Code.

    * **MSI product code**: El Product Code del paquete como un GUID entre llaves, `{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}`. La aplicación web valida el formato. Busca el código en las propiedades del MSI o en la documentación del producto.
    * **Check MSI product version**: Cuando es **No**, solo se evalúa el Product Code. Cuando es **Sí**, también se compara la versión del producto instalado con un operador **equals** o **is greater than or equal to** y la cadena de versión que introduzcas.

    #### File

    Detecta mediante un archivo en una ruta que especifiques.

    * **Path to file**: Ruta completa al archivo, incluido el nombre del archivo (por ejemplo, `C:\Program Files\YourApp\YourApp.exe`).
    * **Detection method**: Elige cómo se evalúa el archivo:
      * **File exists**: Pasa si el archivo se encuentra en la ruta especificada.
      * **File does not exist**: Pasa si el archivo no se encuentra. Úsalo para la detección de desinstalación.
      * **Versión**: Pasa si la versión del archivo cumple la comparación. Establece el operador en **equals** o **is greater than or equal to** y luego introduce la cadena de versión.
      * **Size in MB**: Pasa si el tamaño del archivo en megabytes cumple la comparación. Establece el operador en **equals** o **is greater than or equal to** y luego introduce el tamaño.

    #### Folder

    Detecta mediante una carpeta en una ruta que especifiques.

    * **Path to folder**: Ruta completa del directorio donde se espera la carpeta (por ejemplo, `C:\Program Files\YourApp`).
    * **Método de detección**:
      * **Folder exists**: Pasa si la carpeta se encuentra en la ruta especificada.
      * **Folder does not exist**: Pasa si la carpeta no se encuentra.

    #### Registry

    Detecta la aplicación en función de una clave o un valor del registro.

    * **Key path**: Obligatorio. Ruta completa del registro que se debe comprobar (por ejemplo, `HKLM\SOFTWARE\YourApp`). Las rutas no distinguen entre mayúsculas y minúsculas.
    * **Valor**: Nombre opcional del valor del registro dentro de la clave.
    * **Método de detección**:
      * **Key exists**: Pasa si la clave existe. Si proporcionaste un **Valor**, el valor debe existir en esa clave.
      * **String comparison**: Pasa si el valor de la clave coincide con la cadena que proporciones.

    ### Ejecutables para la detección de aplicaciones abiertas

    * Introduce un nombre de ejecutable por campo (por ejemplo, `yourapp.exe`). Iru comprueba estos procesos cuando se ejecuta la instalación o desinstalación para que se pueda pedir a los usuarios que los cierren.
    * Usa **Añadir** para agregar más filas y elimina filas con el control de eliminación cuando sea necesario.
    * Se pueden introducir hasta 100 ejecutables.

    ### Comandos

    La aplicación web etiqueta estos campos como **Install command line parameters** y **Uninstall command line parameters**. Introduce las líneas de comando de instalación y desinstalación silenciosas.

    **Comando de instalación**

    La línea de comando completa que se usa para instalar la aplicación de forma silenciosa. Para paquetes MSI, una instalación silenciosa estándar tiene este aspecto:

    ```powershell icon="terminal" theme={null}
    msiexec /i yourapp.msi /qn
    ```

    Si tu instalador incluye archivos o carpetas de soporte dentro del zip, haz referencia a ellos mediante rutas relativas. Por ejemplo:

    ```powershell icon="terminal" theme={null}
    msiexec /i lance.msi TRANSFORMS=".\mytransforms\transform.mst" /qn
    ```

    Puedes ejecutar un script de PowerShell desde dentro del zip en lugar de llamar directamente a msiexec. El script debe ejecutar el instalador de forma silenciosa.

    ```powershell icon="terminal" theme={null}
    .\installapp.ps1
    ```

    **Comando de desinstalación**

    La línea de comando completa que se usa para eliminar la aplicación. Para paquetes MSI:

    ```powershell icon="terminal" theme={null}
    msiexec /x {ProductCode} /qn
    ```

    <Note>
      Si la ruta al instalador, desinstalador o script de tu comando de instalación o desinstalación contiene espacios, encierra esa ruta entre comillas dobles (por ejemplo, `"my installer.exe"`).
    </Note>

    ### Arquitectura

    En **Architecture**, elige **x64** o **arm64** para el instalador. Cuando hay metadatos MSI disponibles, Iru intenta detectar automáticamente el valor correcto. Confirma o anula la selección antes de guardar.

    ### Comportamiento de la aplicación

    * La aplicación comienza en un plazo de **15 minutos** desde la asignación para los dispositivos en línea. Para las nuevas instalaciones, esto significa que el proceso de descarga comienza dentro de ese plazo; el tiempo de instalación depende del tamaño del archivo y del rendimiento del dispositivo.
    * Si una instalación o desinstalación falla, Iru reintenta cada 15 minutos.
    * El instalador no se vuelve a descargar en el reintento, a menos que el archivo del servidor haya cambiado.
    * Eliminar el Library Item o eliminar la asignación del Blueprint **no** desinstala la aplicación de los dispositivos. La aplicación permanece en el dispositivo; simplemente se deja de aplicar.

    Cuando los errores de instalación o desinstalación generan alertas en Iru Endpoint, consulta nuestro artículo de soporte [Alertas globales](/es/endpoint/devices/global-alerts) para obtener más detalles.

    ### Seguridad

    * **Verificación de hash**: Iru verifica el hash SHA-256 del instalador antes de ejecutar el comando de instalación. Si el hash no coincide, la instalación falla inmediatamente.
    * **Entrega cifrada**: Los archivos del instalador se entregan a través de HTTPS. Solo los dispositivos a los que se dirige el Library Item pueden descargar el instalador.

    ### Consideraciones

    * Eliminar un Library Item o eliminar una asignación de Blueprint no desinstala la aplicación. Las aplicaciones permanecen en el dispositivo y ya no se aplican.
    * El zip del instalador se expande en el dispositivo antes de la ejecución. Asegúrate de que las rutas relativas de tu comando de instalación coincidan con la estructura de carpetas dentro de tu zip.
    * Si se dirigen varias aplicaciones a un dispositivo simultáneamente, la aplicación se pone en cola. El SLO de 15 minutos se aplica al inicio de la descarga de la primera aplicación de la cola.

    ### Prácticas recomendadas

    <CardGroup cols={2}>
      <Card title="Usa la detección MSI para paquetes MSI" icon="check">
        Para los instaladores basados en MSI, el Product Code identifica el paquete instalado independientemente de la ruta de instalación.
      </Card>

      <Card title="Prueba tus comandos de instalación y desinstalación antes de implementar" icon="flask">
        Ejecuta tus comandos de instalación y desinstalación manualmente en un dispositivo de prueba antes de cargarlos en Iru. Los indicadores silenciosos que funcionan en un tipo de instalador pueden no funcionar en otro; valídalos antes de implementarlos en la flota.
      </Card>

      <Card title="Estructura tu zip para que coincida con tu comando" icon="folder">
        Si tu comando de instalación hace referencia a archivos de soporte mediante rutas relativas, asegúrate de que la estructura de carpetas del zip coincida exactamente con esas rutas. Una discrepancia hace que la instalación falle.
      </Card>

      <Card title="Prueba primero en un grupo piloto" icon="users">
        Asigna el Library Item a un Blueprint pequeño que contenga dispositivos de prueba antes de ampliarlo a toda tu flota. Verifica que la instalación, la detección y los informes se comporten según lo esperado.
      </Card>

      <Card title="Mantén la detección específica" icon="bullseye">
        Las reglas de detección demasiado amplias (por ejemplo, comprobar una carpeta que comparten varias aplicaciones) pueden provocar falsos positivos. Usa el método más específico disponible para la detección.
      </Card>
    </CardGroup>

    ### Instrucciones paso a paso

    Para obtener instrucciones paso a paso, consulta [Configurar el Library Item Windows Custom App](/es/endpoint/library/library-items-profiles/configure-the-windows-custom-app-library-item).

    ### Solución de problemas

    <AccordionGroup>
      <Accordion title="La aplicación no se instala en los dispositivos de destino">
        **Posibles causas:**

        * El Library Item no está asignado al Blueprint del dispositivo
        * Los dispositivos de destino no han hecho check-in recientemente

        **Soluciones:**

        * Verifica que el Library Item esté asignado al Blueprint correcto y que los dispositivos de destino hayan hecho check-in en los últimos 15 minutos
        * Revisa la vista de estado por dispositivo para ver códigos de salida o mensajes de error
      </Accordion>

      <Accordion title="La instalación falla con un código de error">
        Revisa el código de salida en la vista de estado por dispositivo. Los códigos de salida MSI comunes incluyen:

        * **1603**: Error genérico, a menudo causado porque la aplicación ya se está ejecutando, por falta de espacio en disco o por un problema de permisos.
        * **1618**: Ya hay otra instalación en curso. El agente lo reintentará.
        * **1638**: Ya hay instalada una versión más reciente de la aplicación. Revisa tu lógica de detección y la ruta de actualización.
      </Accordion>

      <Accordion title="La detección no coincide después de una instalación correcta">
        **Posibles causas:**

        * La regla de detección no coincide con el estado real de la instalación
        * Product Code, ruta o valor del registro incorrectos

        **Soluciones:**

        * Para paquetes MSI, verifica que el Product Code sea correcto
        * Para la detección de archivos o del registro, confirma la ruta y el valor exactamente como aparecen después de la instalación
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

### Artículos relacionados

<CardGroup cols={2}>
  <Card title="Configurar el Library Item Mac Custom App" icon="apple" href="/es/endpoint/library/library-items-profiles/configure-the-custom-apps-library-item">
    Configuración paso a paso de Mac Custom Apps (PKG, DMG, ZIP)
  </Card>

  <Card title="Configurar el Library Item Windows Custom App" icon="microsoft" href="/es/endpoint/library/library-items-profiles/configure-the-windows-custom-app-library-item">
    Configuración paso a paso de Windows Custom Apps (MSI, EXE)
  </Card>

  <Card title="Descripción general de la Library" icon="books" href="/es/endpoint/library/library-items-profiles/library-overview">
    Selecciona, crea y administra Library Items y agrégalos a Blueprints
  </Card>

  <Card title="Self Service: Library Items" icon="box" href="/es/endpoint/settings/self-service/self-service-library-items">
    Configura Library Items para Self Service (macOS)
  </Card>

  <Card title="Alertas globales" icon="bell" href="/es/endpoint/devices/global-alerts">
    Configura cómo Iru Endpoint muestra alertas cuando las Custom Apps u otros Library Items informan problemas
  </Card>
</CardGroup>
