Updater
類別 (在 flash.desktop 套件中) 包含一個方法
update()
,可供您將目前執行的應用程式更新為不同的版本。例如,如果使用者桌面具有某個版本的 AIR 檔 ("Sample_App_v2.air"),下列程式碼會更新該應用程式。
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);
JavaScript 範例:
var updater = new air.Updater();
var airFile = air.File.desktopDirectory.resolvePath("Sample_App_v2.air");
var version = "2.01";
updater.update(airFile, version);
在應用程式使用 Updater 類別之前,使用者或應用程式必須先將更新版本的 AIR 檔下載至電腦。如需詳細資訊,請參閱
將 AIR 檔下載至使用者的電腦
。
呼叫 Updater.update() 方法的結果
當執行階段中的應用程式呼叫
update()
方法時,執行階段會關閉該應用程式,然後嘗試從 AIR 檔安裝新版本。執行階段會檢查 AIR 檔中所指定的應用程式 ID 和發行者 ID 是否與呼叫
update()
方法之應用程式的應用程式 ID 和發行者 ID 相符 (如需有關應用程式 ID 和發行者 ID 的詳細資訊,請參閱
AIR 應用程式描述器檔案
)。它也會檢查版本字串是否與傳遞給
update()
方法的
version
字串相符。如果安裝程序順利完成,執行階段就會開啟新版應用程式;否則 (如果安裝程序無法完成),就會重新開啟現有 (安裝前) 版本應用程式。
若要在 Mac OS 上安裝更新版的應用程式,使用者必須具有適當的系統權限,才能在應用程式目錄內進行安裝。在 Windows 和 Linux 中,使用者必須具有系統管理權限。
如果更新版的應用程式需要更新版的執行階段,則會安裝新的執行階段版本。若要更新執行階段,使用者必須具有電腦的系統管理權限。
測試使用 ADL 的應用程式時,呼叫
update()
方法會產生執行階段例外。
關於版本字串
指定為
update()
方法的
version
參數之字串必須與要安裝 AIR 檔的應用程式描述器檔案中的
version
或
versionNumber
元素中的字串相符。基於安全考量,指定
version
參數為必要的程序。藉由在 AIR 檔中要求應用程式必須確認版本號碼的方式,應用程式將不會誤裝舊的版本 (舊的應用程式版本可能包含目前所安裝應用程式內已修正的安全性弱點)。應用程式也應該以已安裝應用程式中的版本字串,檢查 AIR 檔中的版本字串,以防止降級攻擊。
在 AIR 2.5 之前,版本字串可以是任何格式。例如,可以是 "2.01" 或 "version 2"。但在 AIR 2.5 或更新版本中,版本字串最多可以有三個序列,而每個序列 (以句號分隔) 中最多可有 3 位數。例如,“.0”、“1.0”和 “67.89.999” 全是有效的版本號碼。您應該在更新應用程式之前,先驗證更新版本字串。
如果 Adobe AIR 應用程式透過網路下載 AIR 檔,那麼最好制定機制,讓網路服務可透過該機制通知下載中的 Adobe AIR 應用程式版本。然後,應用程式就能使用此字串做為
update()
方法的
version
參數。如果 AIR 檔是透過其它方式取得,其中的 AIR 檔版本不明,AIR 應用程式可以檢查 AIR 檔,以判斷版本資訊 (AIR 檔是以 ZIP 壓縮的存檔檔案,而應用程式描述器檔案是存檔檔案中的第二筆記錄)。
如需有關應用程式描述器檔案的詳細資訊,請參閱
AIR 應用程式描述器檔案
。
應用程式更新的簽署工作流程
以臨時方式發佈更新會使管理多個應用程式版本的工作變得更加複雜,也會使追蹤憑證的到期日期變得更加困難。憑證可能在您可以發佈更新之前便已過期。
Adobe AIR 執行階段會將已發佈但沒有移轉簽名的應用程式更新視為新的應用程式。使用者必須解除安裝目前的 AIR 應用程式,才能安裝應用程式更新。
若要解決此問題,請以最新的憑證將每個更新的應用程式上傳至不同的部署 URL。請包括提醒您憑證必須在 180 天的寬限期內套用移轉簽名的機制。如需詳細資訊,請參閱
簽署 AIR 應用程式的更新版本
。
如需有關如何套用簽名的詳細資訊,請參閱
ADT 命令
。
執行下列工作以簡化套用移轉簽名的程序:
|
|
|