Application Support: armazenamento de configurações e Core Data

Autor: IT Sectr Publicado: 2026-07-10 Tempo de leitura: 10 min

Application Support é um diretório no sandbox do aplicativo iOS projetado para armazenar dados auxiliares necessários para o funcionamento do aplicativo, mas não criados diretamente pelo usuário. De acordo com o Apple File System Basics (2024), este diretório é ideal para arquivos de configuração, bancos de dados SQLite do Core Data, documentos em cache e outros dados que o aplicativo gera por conta própria. Ao contrário do Diretório Documents, o Application Support não aparece no iTunes File Sharing e o usuário não tem acesso direto a ele, o que protege os dados de serviço contra exclusão acidental.

Pontos principais

  • Application Support — um diretório para dados que o aplicativo cria para seu próprio funcionamento, não destinados ao usuário.
  • Arquivos do Application Support são copiados automaticamente para o iCloud e iTunes, a menos que a flag de exclusão seja definida.
  • O caminho para o diretório é NSApplicationSupportDirectory ou FileManager.urls(for: .applicationSupportDirectory).
  • Core Data por padrão coloca bancos de dados SQLite no Application Support.
  • O usuário não tem acesso direto ao Application Support através do Files ou iTunes.

O que é Application Support no iOS?

Application Support é um diretório no sandbox do aplicativo iOS projetado para armazenar dados que o aplicativo cria e usa para seu funcionamento, mas que não são documentos do usuário. Este é o local principal para configurações, bancos de dados, metadados em cache e outros arquivos auxiliares.

O iOS designa o Application Support como uma camada intermediária entre Documents (dados do usuário) e Caches (dados temporários). Os arquivos no Application Support podem ser relativamente permanentes, mas o usuário não deve ter acesso direto a eles — isso o distingue do Diretório Documents.

De acordo com a Documentação para Desenvolvedores da Apple (2024), o Application Support é o local recomendado para armazenar bancos de dados SQLite do Core Data, arquivos Realm, configurações em formato JSON/plist, materiais de referência baixados e outros dados que o aplicativo usa, mas que o usuário não criou explicitamente.

Importante: por padrão, o Application Support está incluído no backup do iCloud e iTunes. Se o aplicativo armazenar grandes quantidades de dados neste diretório que podem ser recriados (por exemplo, guias baixadas), é necessário definir a flag isExcludedFromBackup para os arquivos relevantes.

Como obter o caminho para o Application Support

Em Swift, o caminho para o Diretório Application Support é obtido através de FileManager.urls(for: .applicationSupportDirectory). A Apple recomenda criar um subdiretório com o nome do aplicativo dentro do Application Support para isolar os dados.

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
)

O Objective-C usa NSSearchPathForDirectoriesInDomains com NSApplicationSupportDirectory. Assim como no Swift, é recomendado criar um subdiretório filho com o nome do aplicativo.

objective-c
@import Foundation;

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

Na primeira inicialização, o diretório Application Support pode não existir — ele deve ser criado usando createDirectory(at:withIntermediateDirectories:). Isso o diferencia do Diretório Documents, que é criado automaticamente pelo sistema.

Quais dados armazenar no Application Support

Application Support é adequado para uma ampla gama de dados que o aplicativo usa para seu funcionamento. Escolher os dados certos para este diretório melhora a organização do sistema de arquivos e simplifica o backup.

Bancos de dados Core Data e Realm

Os arquivos SQLite do Core Data são criados no Application Support por padrão. O Realm também recomenda colocar bancos de dados neste diretório. Isso isola os documentos do usuário dos bancos de dados internos do aplicativo.

Arquivos de configuração

Arquivos JSON, plist, XML com configurações do aplicativo, Feature Flags, metadados de usuário em cache (mas não tokens de autenticação — para eles use Keychain).

Tipo de dadoApplication SupportAlternativa
SQLite Core DataSim (padrão)
Configurações .plist / .jsonSimUserDefaults (para simples)
Materiais de referência baixadosSimDocuments (se para o usuário)
Registros do aplicativoCondicionalmenteCaches (para registros)
Tokens de autenticaçãoNãoKeychain

Critério de seleção: se os dados são criados e usados pelo aplicativo, não pelo usuário, e devem persistir entre execuções — seu lugar é no Application Support.

Core Data e Application Support

Core Data é um dos principais consumidores do Application Support. Ao criar um NSPersistentContainer, o Core Data coloca automaticamente os arquivos SQLite em Library/Application Support com um nome único baseado no nome do modelo.

Entender onde o Core Data armazena arquivos é fundamental para migrações, backup e depuração. Principais arquivos: .sqlite (dados), .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]

Ao usar a sincronização do Core Data com CloudKit, o arquivo SQLite permanece no Application Support e o CloudKit atua como uma camada de transporte. Neste caso, é importante não excluir arquivos do backup — caso contrário, a sincronização entre dispositivos pode falhar.

Application Support vs Diretório Documents

A diferença entre Application Support e Documents é uma das mais importantes para organizar corretamente a estrutura de arquivos do aplicativo iOS. Escolher incorretamente pode levar o usuário a excluir acidentalmente dados importantes do aplicativo ou, inversamente, não conseguir encontrar seus arquivos.

ParâmetroApplication SupportDiretório Documents
Acesso do usuárioNão (oculto)Via iTunes File Sharing
Tipo de dadoDados de serviço do aplicativoDocumentos do usuário
Backup iCloudSim (padrão)Sim (padrão)
Risco de exclusãoBaixo (sem acesso)Médio (acessível ao usuário)
ExemploSQLite Core DataPDF exportado

Regra simples: se o usuário deve ver o arquivo e poder excluí-lo — use Documents. Se o arquivo é necessário para o aplicativo funcionar, mas o usuário não precisa saber dele — use Application Support. Se os dados podem ser recriados — use Caches.

Melhores práticas para trabalhar com Application Support

Trabalhar com Application Support requer considerar várias características que o distinguem de outros diretórios do sandbox. Seguir essas práticas ajuda a evitar perda de dados, problemas de migração e comportamentos inesperados do aplicativo.

Sempre criar o diretório na primeira inicialização

Ao contrário do Documents, o Application Support pode não existir na primeira inicialização. Use createDirectory(at:withIntermediateDirectories:) com o parâmetro withIntermediateDirectories: true para garantir a criação de toda a cadeia de subdiretórios.

Usar um subdiretório com Bundle Identifier

Crie um subdiretório com o Bundle Identifier dentro do Application Support. Isso isola os dados do seu aplicativo de outros aplicativos (embora o sandbox já forneça isolamento) e simplifica a migração ao mudar de provedor.

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 essas práticas garante que os dados de serviço do aplicativo estejam organizados corretamente, protegidos contra exclusão acidental pelo usuário e restaurados corretamente a partir de backups.

Perguntas frequentes

Preciso criar o Diretório Application Support manualmente?

Sim, o Application Support não é criado automaticamente ao instalar o aplicativo. Ao contrário do Documents e Caches, que o sistema cria na primeira inicialização, o Application Support deve ser criado pelo desenvolvedor usando FileManager.createDirectory(at:withIntermediateDirectories:). Isso geralmente é feito no método application(_:didFinishLaunchingWithOptions:).

O usuário pode excluir acidentalmente dados do Application Support?

Não, através da interface padrão do iOS (Files, iTunes) o usuário não tem acesso ao Application Support. No entanto, quando o próprio aplicativo é excluído, todo o sandbox, incluindo o Application Support, é completamente removido. O backup do iCloud permanece até a restauração ou exclusão manual.

O Application Support é adequado para armazenar vídeos baixados?

Para vídeos baixados destinados ao usuário, é melhor usar o Diretório Documents para que o usuário possa gerenciar esses arquivos através do Files. Se o vídeo faz parte do cache interno do aplicativo (por exemplo, conteúdo de treinamento offline), o Application Support pode ser usado com a flag isExcludedFromBackup para arquivos grandes.

Como migrar dados do Application Support ao atualizar o aplicativo?

Adicione versionamento de subdiretórios dentro do Application Support. Ao atualizar, verifique a versão atual dos dados e, se necessário, crie um novo subdiretório, mantendo o antigo para rollback. Exclua o diretório antigo somente após confirmar que todos os usuários migraram com sucesso para a nova versão dos dados.

O tamanho do Application Support afeta a velocidade de inicialização do aplicativo?

Indiretamente — sim. Se o Application Support contiver dezenas de milhares de arquivos pequenos, o FileManager.enumerator pode retardar a inicialização. Recomenda-se limitar o número de arquivos no Application Support (não mais que 1000) e usar bancos de dados (Core Data, Realm) em vez de muitos arquivos individuais para dados estruturados.

Resumo

  • Application Support — um diretório para dados de serviço do aplicativo não destinados ao acesso direto do usuário.
  • O caminho para o diretório é FileManager.urls(for: .applicationSupportDirectory) ou NSSearchPathForDirectoriesInDomains com NSApplicationSupportDirectory.
  • O diretório deve ser criado manualmente na primeira inicialização do aplicativo.
  • Core Data por padrão coloca bancos de dados SQLite no Application Support.
  • O usuário não tem acesso ao Application Support através do Files ou iTunes.
  • Arquivos do Application Support são copiados para o iCloud a menos que isExcludedFromBackup seja definido.
  • Crie um subdiretório com o Bundle Identifier para isolar dados e simplificar a migração.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também