簽署 AIR 應用程式的更新版本

每次建立現有 AIR 應用程式的更新版本,都要簽署更新的應用程式。最佳的作法是,使用您用來簽署先前版本的相同憑證來簽署更新版本。如此,簽署就會與第一次的應用程式簽署完全相同。

如果用來簽署舊版應用程式的憑證已經過期,而且已更新或遭到取代,您可以使用已更新或全新 (取代項目) 的憑證來簽署更新版本。若要執行這項作業,請使用新憑證簽署應用程式,「並」使用原始憑證套用移轉簽名。移轉簽名會驗證更新是否由原始憑證擁有者所發佈。

在套用移轉簽名之前,請考慮下列要點:

  • 若要套用移轉簽名,原始憑證必須仍然有效或者在過去 365 天內過期。這個期間稱為「寬限期」,寬限期的時間長短在未來可能會有所變動。

    備註: 在 AIR 2.6 之前,寬限期是 180 天。
  • 在憑證過期以及 365 天的寬限期之後,您便無法套用移轉簽名。在此情況下,使用者必須解除安裝現有版本,才能安裝更新版本。

  • 365 天寬限期只適用於在應用程式描述器命名空間中,指定 AIR 1.5.3 版或更新版本的應用程式。

重要事項: 以憑證過期的移轉簽名來簽署更新只是一種暫時性的解決方案。如需完整的解決方案,請建立標準化的簽署工作流程來管理應用程式更新的部署。例如,使用最新憑證來簽署每個更新,並且使用用來簽署舊版更新的憑證 (如果有的話) 來套用移轉憑證。將每個更新上傳到專屬的 URL,以便使用者下載應用程式。如需詳細資訊,請參閱 應用程式更新的簽署工作流程

下列表格和圖表摘要說移轉簽名的工作流程:

案例

原始憑證的狀態

開發人員動作

使用者動作

以 Adobe AIR 執行階段 1.5.3 版或更新的版本為基礎的應用程式

有效

發佈 AIR 應用程式的最新版本。

不需要動作

應用程式會自動升級

已過期,但仍在 365 天寬限期內

使用新憑證簽署應用程式。使用過期的憑證套用移轉簽名。

不需要動作

應用程式會自動升級

已經過期且不在寬限期內

您無法將移轉簽名套用至 AIR 應用程式更新。

您必須使用新憑證來發佈另一個版本的 AIR 應用程式。解除安裝現有版本的 AIR 應用程式之後,使用者即可安裝新版本。

解除安裝目前版本的 AIR 應用程式,並安裝最新的版本

  • 以 Adobe AIR 執行階段 1.5.2 版或較舊的版本為基礎的應用程式

  • 更新的應用程式描述器中的發行者 ID 與先前版本的發行者 ID 相符

有效

發佈 AIR 應用程式的最新版本。

不需要動作

應用程式會自動升級

已經過期且不在寬限期內

您無法將移轉簽名套用至 AIR 應用程式更新。

您必須使用新憑證來發佈另一個版本的 AIR 應用程式。解除安裝現有版本的 AIR 應用程式之後,使用者即可安裝新版本。

解除安裝目前版本的 AIR 應用程式,並安裝最新的版本

  • 以 Adobe AIR 執行階段 1.5.2 版或較舊的版本為基礎的應用程式

  • 更新的應用程式描述器中的發行者 ID 與先前版本的發行者 ID「不符」

任意

使用有效的憑證簽署 AIR 應用程式並發佈 AIR 應用程式的最新版本

解除安裝目前版本的 AIR 應用程式,並安裝最新的版本

更新的簽署工作流程

將 AIR 應用程式移轉為使用新憑證

若要在更新應用程式的同時將 AIR 應用程式移轉為新憑證:

  1. 建立應用程式的更新版本

  2. 使用「新憑證」封裝並簽署更新版的 AIR 檔

  3. 使用 -migrate 命令,以「原始」憑證再次簽署 AIR 檔

使用 -migrate 命令簽署的 AIR 檔案除了用來更新任何以舊版憑證簽署的先前版本之外,也可以用來安裝新版的應用程式。

備註: 更新使用 1.5.3 以前的 AIR 版本發行的應用程式時,您必須在應用程式描述器中指定原始發行者 ID。否則,應用程式的使用者必須解除安裝舊的版本,才能安裝更新程式。

請使用 ADT - migrate 命令和下列語法:

adt -migrate SIGNING_OPTIONS air_file_in air_file_out
  • SIGNING_OPTIONS :簽署選項會識別用於簽署 AIR 檔的私密金鑰和憑證。這些選項必須識別「原始」簽署憑證。如需有關這些選項的詳細資訊,請參閱 ADT 程式碼簽署選項

  • air_file_in :本身為更新程式的 AIR 檔,已經使用「新的」憑證加以簽署。

  • air_file_out :要建立的 AIR 檔。

備註: 用於輸入和輸出 AIR 檔案的檔案名稱必須不同。

下列範例示範使用 -migrate 旗標呼叫 ADT,以便將移轉簽名套用至 AIR 應用程式的更新版本:

adt -migrate -storetype pkcs12 -keystore cert.p12 myAppIn.air myApp.air
備註: 在 AIR 1.1 發行版本中,已經將 -migrate 命令加入至 ADT。

將原生安裝程式 AIR 應用程式移轉為使用新憑證

以原生安裝程式形式發佈的 AIR 應用程式 (例如,使用原生擴充功能 API 的應用程式) 無法透過 ADT -migrate 命令進行簽署,因為它是平台特定的原生應用程式,而非 .air 檔案。相反地,若要將以原生擴充功能形式發佈的 AIR 應用程式移轉為新憑證:

  1. 建立應用程式的更新版本。

  2. 確認在您的應用程式描述器 (app.xml) 檔案中, <supportedProfiles> 標籤同時包含桌上型描述檔和 extendedDesktop 描述檔 (或者從應用程式描述器中移除 <supportedProfiles> 標籤)。

  3. 使用 ADT -package 命令搭配「新」憑證,將更新應用程式封裝為「.air 檔案」並加以簽署。

  4. 使用 ADT -migrate 命令搭配「原始」憑證,將移轉憑證套用至 .air 檔案 (如 將 AIR 應用程式移轉為使用新憑證 中所述)。

  5. 使用 ADT -package 命令搭配 -target native 旗標,將 .air 檔案封裝成原生安裝程式。由於應用程式已經簽署,因此,在這個步驟中,您不需要指定簽署憑證。

下列範例示範這個程序的步驟 3-5。此程式碼會以 -package 命令呼叫 ADT、以 -migrate 命令呼叫 ADT,然後再次以 -package 命令呼叫 ADT,以便將 AIR 應用程式的更新版本封裝為原生安裝程式:

adt -package -storetype pkcs12 -keystore new_cert.p12 myAppUpdated.air myApp.xml myApp.swf 
adt -migrate -storetype pkcs12 -keystore original_cert.p12 myAppUpdated.air myAppMigrate.air 
adt -package -target native myApp.exe myAppMigrate.air

將使用原生擴充功能的 AIR 應用程式移轉為使用新憑證

使用原生擴充功能的 AIR 應用程式無法透過 ADT -migrate 命令進行簽署,也不能透過用來移轉原生安裝程式 AIR 應用程式的程序進行移轉,因為它無法發佈為中繼 .air 檔案。相反地,若要將使用原生擴充功能的 AIR 應用程式移轉為新憑證:

  1. 建立應用程式的更新版本

  2. 使用 ADT -package 命令來封裝並簽署更新原生安裝程式。以「新」憑證封裝應用程式,並且包含指定「原始」憑證的 -migrate 旗標。

使用下列語法呼叫含有 - migrate 旗標的 ADT -package 命令:

adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target package_type NATIVE_SIGNING_OPTIONS output app_descriptor FILE_OPTIONS
  • AIR_SIGNING_OPTIONS :簽署選項會識別用於簽署 AIR 案的私密金鑰和憑證。這些選項會識別「新」簽署憑證。如需有關這些選項的詳細資訊,請參閱 ADT 程式碼簽署選項

  • MIGRATION_SIGNING_OPTIONS :簽署選項會識別用於簽署 AIR 檔案的私密金鑰和憑證。這些選項會識別「原始」簽署憑證。如需有關這些選項的詳細資訊,請參閱 ADT 程式碼簽署選項

  • 其他選項與用於封裝原生安裝程式 AIR 應用程式的選項相同。如需詳細資訊,請參閱 ADT package 命令

下列範例示範如何使用 -package 命令和 -migrate 旗標呼叫 ADT,以便封裝使用原生擴充功能的 AIR 應用程式更新版本,並且將移轉簽名套用至更新:

adt -package -storetype pkcs12 -keystore new_cert.p12 -migrate -storetype pkcs12 -keystore original_cert.p12 -target native myApp.exe myApp.xml myApp.swf
備註: -package 命令的 -migrate 旗標可以在 AIR 3.6 及更新版本的 ADT 中取得。