De
Updater
-klasse (in het flash.desktop-pakket) bevat één methode,
update()
, waarmee u de huidige versie van de toepassing die wordt uitgevoerd, kunt bijwerken naar een andere versie. Als bijvoorbeeld een versie van het AIR-bestand (Sample_App_v2.air) op het bureaublad van de gebruiker staat, wordt de toepassing met behulp van de volgende code bijgewerkt.
ActionScript-voorbeeld:
var updater:Updater = new Updater();
var airFile:File = File.desktopDirectory.resolvePath("Sample_App_v2.air");
var version:String = "2.01";
updater.update(airFile, version);
JavaScript-voorbeeld:
var updater = new air.Updater();
var airFile = air.File.desktopDirectory.resolvePath("Sample_App_v2.air");
var version = "2.01";
updater.update(airFile, version);
Voordat de klasse Updater door een toepassing wordt gebruikt, moet de gebruiker of toepassing de bijgewerkte versie van het AIR-bestand downloaden naar de computer. Zie
AIR-bestanden naar de computer van de gebruiker downloaden
voor meer informatie.
Resultaten van het oproepen van de methode Updater.update()
Wanneer een toepassing in de runtime de methode
update()
oproept, sluit de runtime de toepassing af en probeert de runtime de nieuwe versie van de toepassing vanuit het AIR-bestand te installeren. De runtime controleert of de toepassings- en uitgevers-id in het AIR-bestand overeenkomen met de toepassings- en uitgevers-id voor de toepassing die de methode
update()
oproept. (Zie
AIR-toepassingsdescriptorbestanden
voor informatie over de toepassings- en uitgevers-id.) De runtime controleert ook of de tekenreeks version overeenkomt met de tekenreeks
version
die aan de methode
update()
is doorgegeven. Als de installatie zonder problemen wordt voltooid, opent de runtime de nieuwe versie van de toepassing. Als de installatie niet kan worden voltooid, wordt opnieuw de bestaande (eerder geïnstalleerde) versie van de toepassing geopend.
Als een gebruiker in Mac OS een recentere versie van een toepassing wil installeren, moet de gebruiker over voldoende toegangsrechten beschikken om te installeren in de toepassingsmap. In Windows en Linux moet de gebruiker over beheerdersrechten beschikken.
Als de bijgewerkte versie van de toepassing een bijgewerkte versie van de runtime vereist, wordt de nieuwe runtimeversie geïnstalleerd. Voor het bijwerken van de runtime moet de gebruiker over beheerdersrechten voor de computer beschikken.
Wanneer een toepassing wordt getest met ADL, resulteert het oproepen van de methode
update()
in een runtime-uitzondering.
Informatie over de tekenreeks version
De tekenreeks die is opgegeven voor de parameter
version
van de methode
update()
, moet overeenkomen met de tekenreeks in het element
version
of
versionNumber
van het toepassingsdescriptorbestand voor het AIR-bestand dat moet worden geïnstalleerd. Uit veiligheidsoverwegingen is het verplicht de parameter
version
op te geven. Doordat u eist dat het versienummer in het AIR-bestand wordt geverifieerd door de toepassing, wordt er niet per ongeluk een oudere versie geïnstalleerd. (Een oudere versie van de toepassing bevat misschien een zwakte in de beveiliging die is gecorrigeerd in de huidige geïnstalleerde toepassing.) De toepassing moet ook de tekenreeks version in het AIR-bestand vergelijken met de tekenreeks version in de geïnstalleerde toepassing om te voorkomen dat de computer van de gebruiker wordt aangevallen en er ten onrechte een downgrade wordt uitgevoerd.
In oudere versies van AIR dan 2.5 kan de versiereeks elke indeling hebben. De tekenreeks kan bijvoorbeeld bestaan uit cijfers, zoals '2.01', maar ook uit cijfers en letters, zoals 'versie 2'. In AIR 2.5 of hogere versie moet de versiereeks een sequentie zijn van hoogstens drie getallen van drie cijfers, gescheiden door putnen. ".0", "1.0" en "67.89.999" zijn bijvoorbeeld alle drie geldige versienummers. U moet de updateversiereeks verifiëren voordat u de toepassing bijwerkt.
Als een Adobe AIR-toepassing een AIR-bestand via het web downloadt, is het een goede gewoonte om een mechanisme te gebruiken waarmee de webservice de Adobe AIR-toepassing kan informeren over de versie die wordt gedownload. De toepassing kan deze tekenreeks vervolgens gebruiken voor de parameter
version
van de methode
update()
. Als het AIR-bestand op een andere manier wordt verkregen, waarbij de versie van het AIR-bestand onbekend blijft, kan de AIR-toepassing het AIR-bestand onderzoeken om de versiegegevens vast te stellen. (Een AIR-bestand is een met ZIP gecomprimeerd archief en het descriptorbestand van de toepassing is de tweede record in het archief.)
Zie
AIR-toepassingsdescriptorbestanden
voor meer informatie over het descriptorbestand van een toepassing.
Workflow voor toepassingsupdates ondertekenen
Wanneer u de updates ad hoc publiceert, wordt het beheren van verschillende versies van een toepassing ingewikkelder en wordt het volgen van verloopdatums van certificaten lastiger. Certificaten kunnen verlopen voordat u een update publiceert.
Adobe AIR-runtime behandelt een toepassingsupdate die wordt gepubliceerd zonder migratie-ondertekening, als een nieuwe toepassing. Gebruikers moeten hun huidige AIR-toepassing verwijderen voordat zij de toepassingsupdate kunnen installeren.
Als u dit probleem wilt oplossen, uploadt u elke bijgewerkte toepassing met het nieuwste certificaat naar een afzonderlijke implementatie-URL. Neem een herinneringsmechanisme op voor het toepassen van migratie-ondertekeningen wanneer uw certificaat zich in de respijtperiode van 180 dagen bevindt. Zie
Een bijgewerkte versie van een AIR-toepassing ondertekenen.
voor meer informatie.
Zie
ATD-opdrachten
voor informatie over het toepassen van ondertekeningen.
Voer de volgende taken uit om het toepassen van de migratie-ondertekeningen te stroomlijnen:
-
Upload elke bijgewerkte toepassing naar een afzonderlijke implementatie-URL.
-
Upload de XML-bestand van de upgradedescriptor en het nieuwste certificaat voor de update naar dezelfde URL.
-
Onderteken de bijgewerkte toepassing met het nieuwste certificaat.
-
Pas een migratie-ondertekening toe op de bijgewerkte toepassing met het certificaat dat is gebruikt om de vorige versie, die zich op een andere URL bevindt, te ondertekenen.
|
|
|