Application Support: almacenamiento de configuraciones y Core Data

Autor: IT Sectr Publicado: 2026-07-10 Tiempo de lectura: 10 min

Application Support es un directorio en el sandbox de la aplicación iOS diseñado para almacenar datos auxiliares necesarios para el funcionamiento de la aplicación, pero no creados directamente por el usuario. Según Apple File System Basics (2024), este directorio es óptimo para archivos de configuración, bases de datos SQLite de Core Data, documentos en caché y otros datos que la aplicación genera por sí misma. A diferencia del Directorio Documents, Application Support no aparece en iTunes File Sharing y el usuario no tiene acceso directo a él, lo que protege los datos de servicio contra eliminación accidental.

Puntos clave

  • Application Support — un directorio para datos que la aplicación crea para su propio funcionamiento, no destinados al usuario.
  • Los archivos de Application Support se respaldan automáticamente en iCloud e iTunes a menos que se establezca la bandera de exclusión.
  • La ruta al directorio es NSApplicationSupportDirectory o FileManager.urls(for: .applicationSupportDirectory).
  • Core Data por defecto coloca las bases de datos SQLite en Application Support.
  • El usuario no tiene acceso directo a Application Support a través de Files o iTunes.

¿Qué es Application Support en iOS?

Application Support es un directorio en el sandbox de la aplicación iOS diseñado para almacenar datos que la aplicación crea y utiliza para su funcionamiento, pero que no son documentos de usuario. Este es el lugar principal para configuraciones, bases de datos, metadatos en caché y otros archivos auxiliares.

iOS designa Application Support como una capa intermedia entre Documents (datos de usuario) y Caches (datos temporales). Los archivos en Application Support pueden ser relativamente permanentes, pero el usuario no debe tener acceso directo a ellos — esto lo distingue del Directorio Documents.

Según la Documentación para Desarrolladores de Apple (2024), Application Support es el lugar recomendado para almacenar bases de datos SQLite de Core Data, archivos Realm, configuraciones en formato JSON/plist, materiales de referencia descargados y otros datos que la aplicación utiliza pero que el usuario no creó explícitamente.

Importante: por defecto, Application Support está incluido en la copia de seguridad de iCloud e iTunes. Si la aplicación almacena grandes cantidades de datos en este directorio que se pueden recrear (por ejemplo, guías descargadas), debe establecer la bandera isExcludedFromBackup para los archivos correspondientes.

Cómo obtener la ruta a Application Support

En Swift, la ruta al Directorio Application Support se obtiene a través de FileManager.urls(for: .applicationSupportDirectory). Apple recomienda crear un subdirectorio con el nombre de la aplicación dentro de Application Support para aislar los datos.

swift
import Foundation

let fileManager = FileManager.default
guard let appSupportURL = fileManager.urls(
    for: .applicationSupportDirectory,
    in: .userDomainMask
).first else { return }

// Create app subdirectory
let bundleID = Bundle.main.bundleIdentifier ?? "com.example.app"
let appDir = appSupportURL.appendingPathComponent(bundleID)
try fileManager.createDirectory(
    at: appDir,
    withIntermediateDirectories: true
)

Objective-C utiliza NSSearchPathForDirectoriesInDomains con NSApplicationSupportDirectory. Al igual que con Swift, se recomienda crear un subdirectorio hijo con el nombre de la aplicación.

objective-c
@import Foundation;

NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSApplicationSupportDirectory,
    NSUserDomainMask,
    YES
);
NSString *appSupportPath = paths.firstObject;
NSString *appDir = [appSupportPath stringByAppendingPathComponent:@"com.example.app"];

En el primer inicio, el directorio Application Support puede no existir — debe crearse usando createDirectory(at:withIntermediateDirectories:). Esto lo distingue del Directorio Documents, que el sistema crea automáticamente.

Qué datos almacenar en Application Support

Application Support es adecuado para una amplia gama de datos que la aplicación utiliza para su funcionamiento. Elegir los datos correctos para este directorio mejora la organización del sistema de archivos y simplifica las copias de seguridad.

Bases de datos Core Data y Realm

Los archivos SQLite de Core Data se crean en Application Support por defecto. Realm también recomienda colocar las bases de datos en este directorio. Esto aísla los documentos de usuario de las bases de datos internas de la aplicación.

Archivos de configuración

Archivos JSON, plist, XML con configuraciones de la aplicación, Feature Flags, metadatos de usuario en caché (pero no tokens de autenticación — para ellos usa Keychain).

Tipo de datoApplication SupportAlternativa
SQLite Core DataSí (por defecto)
Configuraciones .plist / .jsonUserDefaults (para simples)
Materiales de referencia descargadosDocuments (si para el usuario)
Registros de la aplicaciónCondicionalmenteCaches (para registros)
Tokens de autenticaciónNoKeychain

Criterio de selección: si los datos son creados y utilizados por la aplicación, no por el usuario, y deben persistir entre ejecuciones — su lugar está en Application Support.

Core Data y Application Support

Core Data es uno de los principales consumidores de Application Support. Al crear un NSPersistentContainer, Core Data coloca automáticamente los archivos SQLite en Library/Application Support con un nombre único basado en el nombre del modelo.

Entender dónde Core Data almacena los archivos es fundamental para las migraciones, la copia de seguridad y la depuración. Archivos principales: .sqlite (datos), .sqlite-wal (Write-Ahead Log), .sqlite-shm (Shared Memory).

swift
import CoreData

// Create Core Data container
let container = NSPersistentContainer(name: "MyAppModel")

// Custom store URL directory
guard let appSupportURL = FileManager.default
    .urls(for: .applicationSupportDirectory,
        in: .userDomainMask).first else { return }

let storeURL = appSupportURL
    .appendingPathComponent("MyAppModel.sqlite")
let description = NSPersistentStoreDescription(url: storeURL)
container.persistentStoreDescriptions = [description]

Al usar la sincronización de Core Data con CloudKit, el archivo SQLite permanece en Application Support y CloudKit actúa como capa de transporte. En este caso, es importante no excluir los archivos de la copia de seguridad — de lo contrario, la sincronización entre dispositivos podría fallar.

Application Support vs Directorio Documents

La diferencia entre Application Support y Documents es una de las más importantes para organizar correctamente la estructura de archivos de la aplicación iOS. Elegir incorrectamente puede llevar a que el usuario elimine accidentalmente datos importantes de la aplicación o, por el contrario, no pueda encontrar sus archivos.

ParámetroApplication SupportDirectorio Documents
Acceso del usuarioNo (oculto)A través de iTunes File Sharing
Tipo de datoDatos de servicio de la aplicaciónDocumentos de usuario
Copia de seguridad iCloudSí (por defecto)Sí (por defecto)
Riesgo de eliminaciónBajo (sin acceso)Medio (accesible al usuario)
EjemploSQLite Core DataPDF exportado

Regla simple: si el usuario debe ver el archivo y poder eliminarlo — usa Documents. Si el archivo es necesario para que la aplicación funcione pero el usuario no necesita saber de él — usa Application Support. Si los datos se pueden recrear — usa Caches.

Mejores prácticas para trabajar con Application Support

Trabajar con Application Support requiere considerar varias características que lo distinguen de otros directorios del sandbox. Seguir estas prácticas ayuda a evitar pérdida de datos, problemas de migración y comportamientos inesperados de la aplicación.

Crear siempre el directorio en el primer inicio

A diferencia de Documents, Application Support puede no existir en el primer inicio. Usa createDirectory(at:withIntermediateDirectories:) con el parámetro withIntermediateDirectories: true para garantizar la creación de toda la cadena de subdirectorios.

Usar un subdirectorio con Bundle Identifier

Crea un subdirectorio con el Bundle Identifier dentro de Application Support. Esto aísla los datos de tu aplicación de los de otras aplicaciones (aunque el sandbox ya proporciona aislamiento) y simplifica la migración al cambiar de proveedor.

swift
import Foundation

enum AppSupport {
    static func ensureDirectory() throws -> URL {
        let fm = FileManager.default
        let baseURL = try fm.url(
            for: .applicationSupportDirectory,
            in: .userDomainMask,
            appropriateFor: nil,
            create: true
        )
        let appDir = baseURL
            .appendingPathComponent(Bundle.main.bundleIdentifier ?? "default")
        try fm.createDirectory(at: appDir, withIntermediateDirectories: true)
        return appDir
    }
}

Seguir estas prácticas garantiza que los datos de servicio de la aplicación estén organizados correctamente, protegidos contra la eliminación accidental por parte del usuario y se restauren correctamente desde las copias de seguridad.

Preguntas frecuentes

¿Necesito crear el Directorio Application Support manualmente?

Sí, Application Support no se crea automáticamente al instalar la aplicación. A diferencia de Documents y Caches, que el sistema crea en el primer inicio, Application Support debe ser creado por el desarrollador usando FileManager.createDirectory(at:withIntermediateDirectories:). Esto se hace normalmente en el método application(_:didFinishLaunchingWithOptions:).

¿Puede el usuario eliminar accidentalmente datos de Application Support?

No, a través de la interfaz estándar de iOS (Files, iTunes) el usuario no tiene acceso a Application Support. Sin embargo, cuando se elimina la aplicación en sí, todo el sandbox, incluido Application Support, se elimina por completo. La copia de seguridad de iCloud permanece hasta la restauración o eliminación manual.

¿Es Application Support adecuado para almacenar videos descargados?

Para videos descargados destinados al usuario, es mejor usar el Directorio Documents para que el usuario pueda gestionar esos archivos a través de Files. Si el video es parte del caché interno de la aplicación (por ejemplo, contenido de entrenamiento sin conexión), se puede usar Application Support con la bandera isExcludedFromBackup para archivos grandes.

¿Cómo migrar datos de Application Support al actualizar la aplicación?

Agrega versionado de subdirectorios dentro de Application Support. Al actualizar, verifica la versión actual de los datos y, si es necesario, crea un nuevo subdirectorio, conservando el anterior para rollback. Elimina el directorio antiguo solo después de confirmar que todos los usuarios han migrado exitosamente a la nueva versión de datos.

¿Afecta el tamaño de Application Support a la velocidad de inicio de la aplicación?

Indirectamente — sí. Si Application Support contiene decenas de miles de archivos pequeños, FileManager.enumerator puede ralentizar la inicialización. Se recomienda limitar el número de archivos en Application Support (no más de 1000) y usar bases de datos (Core Data, Realm) en lugar de muchos archivos individuales para datos estructurados.

Resumen

  • Application Support — un directorio para datos de servicio de la aplicación no destinados al acceso directo del usuario.
  • La ruta al directorio es FileManager.urls(for: .applicationSupportDirectory) o NSSearchPathForDirectoriesInDomains con NSApplicationSupportDirectory.
  • El directorio debe crearse manualmente en el primer inicio de la aplicación.
  • Core Data por defecto coloca las bases de datos SQLite en Application Support.
  • El usuario no tiene acceso a Application Support a través de Files o iTunes.
  • Los archivos de Application Support se respaldan en iCloud a menos que se establezca isExcludedFromBackup.
  • Crea un subdirectorio con el Bundle Identifier para aislar datos y simplificar la migración.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también