Sobre atualização de aplicativos

A classe Updater (no pacote flash.desktop) inclui um método, update() , que você pode usar para atualizar o aplicativo em execução no momento com uma versão diferente. Por exemplo, se o usuário tem uma versão do arquivo AIR ("Sample_App_v2.air") localizada na área de trabalho, o seguinte código atualiza o aplicativo.

Exemplo do ActionScript:

var updater:Updater = new Updater(); 
var airFile:File = File.desktopDirectory.resolvePath("Sample_App_v2.air"); 
var version:String = "2.01"; 
updater.update(airFile, version);

Exemplo do JavaScript:

var updater = new air.Updater(); 
var airFile = air.File.desktopDirectory.resolvePath("Sample_App_v2.air"); 
var version = "2.01"; 
updater.update(airFile, version);

Antes de um aplicativo usar a classe Updater, o usuário ou o aplicativo deve baixar a versão atualizada do arquivo AIR no computador. Para obter mais informações, consulte Download de um arquivo AIR no computador do usuário .

Resultados de chamar o método Updater.update()

Quando um aplicativo no runtime chama o método update() , o runtime fecha o aplicativo e tenta instalar a nova versão do arquivo AIR. O runtime verifica se o ID do aplicativo e o ID do editor especificadas no arquivo AIR correspondem às IDs do aplicativo e do editor do aplicativo que está chamando o método update() . (Para obter informações sobre o ID do aplicativo e o ID do editor, consulte Arquivos descritores do aplicativo do AIR .) Ele também verifica se a string de versão corresponde à string version passada para o método update() . Se a instalação for concluída com êxito, o runtime abrirá a nova versão do aplicativo. Do contrário (se a instalação não for concluída), ele reabrirá a versão existente (pré-instalação) do aplicativo.

No Mac OS, para instalar uma versão atualizada de um aplicativo, o usuário deve ter privilégios adequados do sistema para instalar no diretório do aplicativo. No Windows e no Linux, um usuário precisa de privilégios administrativos.

Se a versão atualizada do aplicativo exigir uma versão atualizada do runtime, a nova versão do runtime será instalada. Para atualizar o runtime, o usuário deve ter privilégios administrativos no computador.

Durante o teste de um aplicativo usando o ADL, se o método update() for chamado, será gerada uma exceção do runtime.

Sobre a string de versão

A sequência de caracteres especificada como o parâmetro version do método update() deve corresponder à string no elemento version ou versionNumber do arquivo de descrição do aplicativo para o arquivo AIR a ser instalado. É necessário especificar o parâmetro version por motivo de segurança. Ao solicitar que o aplicativo verifique o número da versão do arquivo AIR, o aplicativo não instalará uma versão mais antiga de forma inadvertida. (Uma versão mais antiga do aplicativo pode conter uma vulnerabilidade de segurança que foi corrigida no aplicativo instalado no momento.) O aplicativo também deve verificar a string de versão no arquivo AIR com a string de versão no aplicativo instalado para impedir ataques de downgrade.

Antes do AIR 2.5, a sequência de caracteres da versão pode ser de qualquer formato. Por exemplo, pode ser "2.01" ou "versão 2". No AIR 2.5 ou posterior, a sequência de caracteres da versão deve ser uma sequência de até três números de três dígitos separados por pontos. Por exemplo, “.0”, “1.0” e “67.89.999” são todos os números de versão válidos. Você deve validar a sequência da versão de atualização antes de atualizar o aplicativo.

Se um aplicativo do Adobe AIR baixa um arquivo AIR pela web, é recomendável ter um mecanismo através do qual o serviço da web possa notificar o aplicativo sobre a versão que está sendo baixada. O aplicativo poderá então usar essa string como o parâmetro version do método update() . Se o arquivo AIR for obtido por algum outro meio, no qual a versão do arquivo é desconhecida, o aplicativo do AIR poderá examiná-lo para determinar a informação de versão. (Um arquivo AIR consiste em um arquivo compactado no formato ZIP, e o arquivo de descrição do aplicativo é o segundo registro no arquivo.)

Para obter detalhes sobre o arquivo do descritor do aplicativo, consulte Arquivos descritores do aplicativo do AIR .

Marcando o fluxo de trabalho para atualizações do aplicativo

A publicação de atualizações na forma ad hoc complica as tarefas de gerenciamento de versões de vários aplicativos e também faz monitoramento de dificuldade de datas de validade do certificado. Os certificados podem expirar antes que você possa publicar uma atualização

O runtime do Adobe AIR trata uma atualização de aplicativo publicada sem assinatura de migração como um novo aplicativo. Os usuários devem desinstalar seu aplicativo do AIR atual antes que possam instalar a atualização do aplicativo.

Para resolver o problema, carregue cada aplicativo atualizado com o certificado mais recente para uma URL de implementação separada. Inclua um mecanismo que o lembre de aplicar assinaturas de migração quando o certificado estiver dentro do período de prorrogação de 180 dias. Para obter mais informações, consulte Assinatura de uma versão atualizada de um aplicativo do AIR .

Consulte Comandos do ADT para obter mais informações sobre como aplicar assinaturas.

Realize as seguintes tarefas para simplificar o processo de aplicação das assinaturas de migração:

  • Carregue cada aplicativo atualizado para uma URL de implementação separada.

  • Carregue o arquivo XML descritor e o certificado mais recente para a atualização para a mesma URL.

  • Marque o aplicativo atualizado com o certificado mais recente.

  • Aplique uma assinatura de migração para o aplicativo atualizado com o certificado usado para assinar a versão anterior localizada em uma URL diferente.