Impor uma versão mínima do app com a Configuração remota

À medida que o app evolui, novos lançamentos podem introduzir mudanças significativas nas APIs de back-end, resolver vulnerabilidades de segurança críticas ou substituir serviços e modelos de IA descontinuados. Nessas situações, as versões anteriores do app podem parar de funcionar de maneira confiável ou segura.

Com o Remote Config, é possível controlar os requisitos de versão do app de forma dinâmica na nuvem. Ao definir parâmetros de versão em Remote Config, você pode solicitar ou exigir que os usuários atualizem o app sem implantar uma infraestrutura de servidor personalizada ou lançar uma atualização de emergência.

Escolher uma estratégia de atualização

Remote Config fornece os parâmetros de versão para avaliação no cliente, permitindo que você configure a UI de atualização do app para uma de duas estratégias dependendo da gravidade da mudança:

  • Atualização forçada (bloqueio): se uma versão anterior do app for incompatível com seu back-end ou representar um risco de segurança, você poderá bloquear o acesso ao app até que o usuário faça a atualização. Quando a versão instalada é anterior ao mínimo necessário, você pode configurar o app para mostrar uma caixa de diálogo não dispensável que direciona o usuário à app store da plataforma para instalar a versão mais recente.
  • Atualização flexível (opcional): se uma atualização introduzir novos recursos, melhorias de desempenho ou pequenas correções de bugs, configure o app para mostrar um banner dispensável ou uma solicitação incentivando os usuários a atualizar quando for conveniente para eles, permitindo que continuem usando o app.

Etapa 1: configurar parâmetros no console do Firebase

Para gerenciar versões de apps, defina parâmetros no modelo Remote Config:

  1. No console do Firebase, acesse a página DevOps e engajamento > Configuração remota > Parâmetros.
  2. Clique em Adicionar parâmetro ou Criar configuração se este for seu primeiro parâmetro.
  3. Defina os seguintes parâmetros:
    • minimum_version: uma string que representa a versão mais antiga compatível do seu app (por exemplo, "2.4.0"). Os apps que executam uma versão anterior a esse valor são bloqueados até serem atualizados.
    • latest_version (opcional): uma string que representa a versão mais recente disponível do seu app (por exemplo, "2.5.1"). Os apps que executam uma versão entre minimum_version e latest_version podem mostrar uma recomendação de atualização opcional.
    • update_url (opcional): o URL da loja em que os usuários podem baixar a atualização, como a página da Google Play Store ou da App Store da Apple.
  4. Opcional: adicione condições específicas da plataforma:
    • Como os apps para Android e Apple geralmente usam versões de lançamento e URLs de loja diferentes, é possível adicionar valores condicionais para cada plataforma no mesmo parâmetro.
    • Clique em Adicionar valor para condição > Criar condição. Dê um nome à condição (como Android App ou iOS App), selecione App como a regra de segmentação e escolha seu app.
    • Defina a string de versão adequada para cada condição de plataforma e mantenha o valor padrão como um substituto.
  5. Clique em Salvar e depois em Publicar mudanças para aplicar o modelo.

Etapa 2: implementar verificações de versão do lado do cliente

No cliente, compare a versão do app instalada com os parâmetros Remote Config durante a inicialização:

  1. Defina valores padrão no app: sempre forneça valores padrão seguros no pacote de apps. Por exemplo, defina minimum_version como a versão inicial do app, como "1.0.0". Essa configuração de substituição garante que o app continue funcionando normalmente se o dispositivo estiver off-line ou se a solicitação de busca inicial falhar. Para orientações específicas da plataforma, consulte Fazer o download dos padrões do modelo de Remote Config.
  2. Buscar e ativar Remote Config: buscar e ativar os valores de modelo mais recentes quando o app for iniciado.
  3. Comparar versões: recupere as strings minimum_version e latest_version ativas e compare-as com a versão do app instalada no momento.

  4. Entre em ação com base na comparação de versões:

    • Impor atualização obrigatória: se current_version for anterior a minimum_version, mostre um alerta modal em tela cheia que não pode ser dispensado. Desative a navegação para o restante do app e forneça um botão que abra o update_url na app store da plataforma.
    • Solicitar atualização opcional: se current_version for anterior a latest_version, mostre uma caixa de diálogo ou notificação dispensável informando aos usuários que uma atualização está disponível, com opções para Atualizar agora ou Mais tarde.
    • Permitir acesso: caso contrário, permita que o usuário acesse o app.

Práticas recomendadas

  • Adicione um listener em tempo real: quando as atualizações de versão são necessárias devido a problemas de segurança ou degradação grave da UX, adicionar um listener de Remote Config em tempo real ao app pode ajudar a garantir que as mudanças nos requisitos de versão entrem em vigor imediatamente em dispositivos ativos sem esperar pela próxima busca programada ou reinicialização do app.
  • Teste com um grupo limitado: antes de aumentar o minimum_version para todos os usuários de produção, teste a condição com um grupo de teste limitado ou segmentar testadores internos usando propriedades personalizadas do usuário. Esse teste verifica se o modal de bloqueio é exibido corretamente e se os links da loja são resolvidos adequadamente.
  • Use APIs de atualização no app da plataforma: no Android, considere integrar as atualizações no app do Google Play com suas verificações de Remote Config para permitir que os usuários baixem e instalem atualizações sem sair do app.
  • Leia as listas de verificação de produção: confira a lista de verificação de lançamento do Firebase e a lista de verificação de produção do AI Logic para mais orientações sobre como preparar seu app e os recursos de IA para produção.