每一個 AIR 應用程式至少都要有一個應用程式描述器檔案和主要 SWF 或 HTML 檔。隨應用程式安裝的其他任何資源也必須封裝在 AIR 檔案中。
此文章討論使用 SDK 包含的命令列工具來封裝 AIR 應用程式。如需使用 Adobe 編寫工具之一來封裝應用程式的詳細資訊,請參閱下列項目:
所有 AIR 安裝程式檔案都必須使用數位憑證來加以簽署。AIR 安裝程式會使用這項簽名,確認應用程式檔案在您簽署之後並未遭到修改。您可以使用憑證授權單位提供的程式碼簽署憑證,或使用自我簽署的憑證。
使用由受信任憑證授權單位發行的憑證時,應用程式的使用者便可以確認您的發行者身分。安裝對話方塊會反映出您的身分已由憑證授權單位驗證。
已由受信任憑證簽署的應用程式安裝確認對話方塊
當您使用自我簽署的憑證時,使用者便無法驗證您的簽署者身分。自我簽署憑證也無法完全保證套件未遭到竄改 (這是因為在合法安裝檔案送達使用者之前,該安裝檔案可能已被偽造的檔案所取代)。而安裝對話方塊會反映出無法驗證發行者的身分。當使用者在安裝您的應用程式時,便會承擔非常高的安全性風險:
您可以使用 ADT 的
-package
命令,以單一步驟完成 AIR 檔的封裝及簽署。您也可以使用
-prepare
命令建立未經簽署的中繼套件,然後再另外使用
-sign
命令簽署此中繼套件。
備註:
Java 1.5 版及以上版本在用來保護 PKCS12 憑證檔案的密碼中,不接受高位元 ASCII 字元。當您建立或匯出程式碼簽署憑證檔案時,請只在密碼中使用一般的 ASCII 字元。
簽署安裝套件時,ADT 會自動聯繫時間戳記授權伺服器以驗證時間。此時間戳記資訊會包含在 AIR 檔中。之後,您隨時可以安裝包含經過驗證之時間戳記的 AIR 檔。如果 ADT 無法連接至時間戳記伺服器,封裝作業就會取消。您可以覆寫時間戳記選項,但是如果沒有時間戳記,在用於簽署安裝檔案的憑證過期之後,就無法再安裝 AIR 應用程式。
如果您要建立套件來更新現有的 AIR 應用程式,就必須利用和原始應用程式相同的憑證來簽署該套件。如果原始憑證已被更新或在過去 180 天內過期,或如果您想要變更為新的憑證,則您可以套用移轉簽名。移轉簽名會同時使用新的與舊的憑證來簽署應用程式 AIR 檔案。使用
-migrate
命令,如
ADT migrate 命令
所述套用移轉簽名。
重要事項:
在原始憑證過期之後,您可以在 180 天寬限期內套用移轉簽名。若不使用移轉簽名,現有使用者就必須先解除安裝現有的應用程式,然後才能安裝您的新版本。寬限期只適用於在應用程式描述器命名空間中,指定 AIR 1.5.3 版或更新版本的應用程式。若指定的是較早版本的 AIR 執行階段,則無寬限期。
AIR 1.1 之前的版本並不支援移轉簽名。您必須利用 SDK 1.1 版或更新版本封裝應用程式,才能套用移轉簽名。
使用 AIR 檔案部署的應用程式也稱為桌上型描述檔應用程式。如果應用程式描述器檔案不支援桌上型描述檔,您將無法使用 ADT 來封裝 AIR 應用程式的原生安裝程式。您可以在應用程式描述器檔案中使用
supportedProfiles
元素來限制此描述檔。請參閱
裝置描述檔
與
supportedProfiles
。
發行者 ID
AIR 1.5.3 已不再使用發行者 ID。新的應用程式 (利用 AIR 1.5.3 或更新版本所發行) 不需要亦不應該指定發行者 ID。
當您更新以較早版本 AIR 發行的應用程式時,必須在應用程式描述器檔案中指定原始發行者 ID。否則,應用程式的安裝版本與更新版本會被視為是不同的應用程式。如果您使用不同的 ID 或省略 publisherID 標籤,那麼使用者就必須先解除安裝之前的版本,然後才能安裝新版的應用程式。
若要判斷原始發行者 ID,請到原始應用程式安裝處的 META-INF/AIR 子目錄中找出
publisherid
檔案。 這個檔案中的字串就是發行者 ID。應用程式描述器必須在應用程式描述器的命名空間宣告中指定 AIR 1.5.3 執行階段 (或更新版本),以便手動指定發行者 ID。
對於在 AIR 1.5.3 之前所發佈的應用程式 (或在應用程式描述器命名空間中指定較早版本的 AIR,但實際上卻使用 AIR 1.5.3 SDK 來發佈),其發行者 ID 是根據簽署憑證所計算出來的。此 ID 將與應用程式 ID 搭配,以產生應用程式的識別。發行者 ID (如果有的話) 可用於以下用途:
-
驗證 AIR 檔案是更新版本,而不是要安裝的新應用程式
-
加密本機儲存區加密金鑰的一部分
-
應用程式儲存目錄路徑的一部分
-
本機連線之連線字串的一部分
-
識別字串的一部分,AIR 內部瀏覽器 API 用來呼叫應用程式
-
OSID 的一部分 (建立自訂安裝/解除安裝程式時使用)
在 AIR 1.5.3 之前,如果您使用新的或更新的憑證,利用移轉簽名來簽署應用程式更新,那麼應用程式的發行者 ID 便可能會變更。當發行者 ID 變更時,所有與此 ID 相關的 AIR 功能也會隨之變更行為。例如,現有加密本機儲存區中的資料將無法存取,而且任何建立該應用程式本機連線的 Flash 或 AIR 實體,都必須在連線字串中使用新的 ID。
在 AIR 1.5.3 或以上版本中,發行者 ID 並非以簽署憑證為基礎,只有當應用程式描述器中含有 publisherID 標籤時,才會指定發行者 ID。如果在更新 AIR 套件中指定的發行者 ID 不符合目前的發行者 ID,將無法更新應用程式。