昨晚在導出air的發行版本的時候爆出了這個錯誤,在最後一步,error306,Descriptor must support one of the following
這個桑心啊!原來是配置文件錯了,具體解釋如下,在adobe的官網找到的,我把-app.xml的 <supportedProfiles>extendedDesktop</supportedProfiles>配置文件是一種機制,用於定義應用程序運行所在的計算設備的類。一個配置文件定義一組 API 和功能,它們通常在特定類的設備上受支持。可用的配置文件包括:
-
桌面
-
extendedDesktop
-
mobileDevice
-
extendedMobileDevice
-
tv
-
extendedTV
您可以在應用程序描述符中定義應用程序的配置文件。所包含配置文件中的計算機和設備的用戶可以安裝應用程序,其他計算機和設備的用戶則不能。例如,如果在應用程序描述符中僅包含桌面配置文件,則用戶只能在桌面計算機上安裝和運行應用程序。
如果應用程序並不真正支持所包含的配置文件,則此類環境下的用戶體驗可能很差。如果在應用程序描述符中沒有指定任何配置文件,則 AIR 不會對應用程序施加任何限制。您可以使用任意一種支持的格式來打包應用程序,而且任何配置文件中的設備的用戶都可以安裝該應用程序,但是它可能無法在運行時正常工作。
系統會儘可能地在您打包應用程序時施加配置文件限制。例如,如果僅包含 extendedDesktop 配置文件,則無法將應用程序打包成 AIR 文件,而只能打包成本機安裝程序。同樣地,如果僅包含 mobileDevice 配置文件,則無法將應用程序打包成 Android APK。
單個計算設備可支持多個配置文件。例如,桌面計算機上的 AIR 支持桌面配置文件應用程序和 extendedDesktop 配置文件應用程序。但是,擴展的桌面配置文件應用程序可以與本機進程通信,而且必須打包成本機安裝程序(exe、dmg、deb 或 rpm)。而桌面配置文件應用程序則無法與本機進程通信。桌面配置文件應用程序可以打包成 AIR 文件或本機安裝程序。
在配置文件中包含功能,表示定義了該配置文件的設備類通常支持該功能。但是,這並不表示配置文件中的每種設備支持每種功能。例如,大多數(但並非全部)移動電話都包含一個加速度計。不具有通用支持的類和功能通常有一個布爾屬性,您可以在使用功能之前檢查該屬性。例如,對於加速度計的情況,您可以測試靜態屬性 Accelerometer.isSupported 以確定當前設備是否擁有支持的加速度計。
在應用程序描述符中使用 supportedProfiles 元素可以將以下配置文件分配給 AIR 應用程序:
- 桌面
- 桌面配置文件爲作爲 AIR 文件安裝在桌面計算機上的 AIR 應用程序定義一組功能。這些應用程序將在支持的桌面平臺(Mac OS、Windows 和 Linux)上安裝並運行。在 AIR 2 以前的 AIR 版本中開發的 AIR 應用程序可視爲位於桌面配置文件中。某些 API 在此配置文件中無法正常運行。例如,桌面應用程序無法與本機進程通信。
- 擴展的桌面
- 擴展的桌面配置文件爲打包到本機安裝程序並隨之一起安裝的 AIR 應用程序定義一組功能。這些本機安裝程序是 Windows 上的 EXE 文件、Mac OS 上的 DMG 文件和 Linux 上的 BIN、DEB 或 RPM 文件。擴展的桌面應用程序具有在桌面配置文件應用程序中不可用的其他功能。有關更多信息,請參閱對桌面本機安裝程序進行打包。
- 移動設備
- 移動設備配置文件可爲安裝在移動設備(例如手機和平板電腦)上的應用程序定義一組功能。這些應用程序可在受支持的移動平臺(包括 Android、Blackberry Tablet OS 和 iOS)上安裝並運行。
- 擴展的移動設備
- 擴展的移動設備配置文件爲安裝在移動設備上的應用程序定義一組擴展功能。目前,沒有支持此配置文件的設備。
- TV
- 電視配置文件爲電視定義一組功能。該配置文件還包含將電視用作主顯示器的設備,如藍光光盤播放機、數碼錄像機和機頂盒。該配置文件中的應用程序不能使用 Adobe AIR 的本機擴展。
- 擴展的電視
- 擴展的電視配置文件所涵蓋的設備類型與電視配置文件相同,但包括了附加功能,如 Adobe AIR 的本機擴展。
限制應用程序描述符文件中的目標配置文件
<supportedProfiles>desktop</supportedProfiles>
設置此元素後,只能在您列出的配置文件中打包應用程序。使用下列值:
-
desktop — 桌面配置文件
-
extendedDesktop — 擴展的桌面配置文件
-
mobileDevice — 移動設備配置文件
-
tv - 電視配置文件
-
extendedTV - 擴展的電視配置文件
supportedProfiles 元素是可選的。如果應用程序描述符文件中不包括此元素,應用程序可以針對任何配置文件進行打包和部署。
要在 supportedProfiles 元素中指定多個配置文件,請使用空格字符將配置文件彼此隔開,如下所示:
<supportedProfiles>desktop extendedDesktop</supportedProfiles>
不同配置文件的功能
下表列出了所有配置文件中都不支持的類和功能。
類或功能 |
桌面 |
extendedDesktop |
mobileDevice |
tv |
extendedTV |
---|---|---|---|---|---|
Accelerometer (Accelerometer.isSupported) |
否 |
否 |
需檢查 |
否 |
否 |
Accessibility (Capabilities.hasAccessibility) |
是 |
是 |
否 |
否 |
否 |
迴音消除 (Microphone.getEnhancedMicrophone()) |
是 |
是 |
否 |
否 |
否 |
ActionScript 2 |
是 |
是 |
否 |
是 |
是 |
CacheAsBitmap 矩陣 |
否 |
否 |
是 |
是 |
是 |
Camera (Camera.isSupported) |
是 |
是 |
是 |
否 |
否 |
CameraRoll |
否 |
否 |
是 |
否 |
否 |
CameraUI (CameraUI.isSupported) |
否 |
否 |
是 |
否 |
否 |
捕獲運行時捆綁 |
是 |
是 |
是 |
否 |
否 |
ContextMenu (ContextMenu.isSupported) |
是 |
是 |
否 |
否 |
否 |
DatagramSocket (DatagramSocket.isSupported) |
是 |
是 |
否 |
否 |
否 |
DockIcon (NativeApplication.supportsDockIcon) |
需檢查 |
需檢查 |
否 |
否 |
否 |
拖放 (NativeDragManager.isSupported) |
是 |
是 |
需檢查 |
否 |
否 |
EncyptedLocalStore (EncyptedLocalStore.isSupported) |
是 |
是 |
是 |
否 |
否 |
Flash Access (DRMManager.isSupported) |
是 |
是 |
否 |
是 |
是 |
GameInput (GameInput.isSupported) |
否 |
否 |
否 |
是 |
是 |
Geolocation (Geolocation.isSupported) |
否 |
否 |
需檢查 |
否 |
否 |
HTMLLoader (HTMLLoader.isSupported) |
是 |
是 |
否 |
否 |
否 |
IME (IME.isSupported) |
是 |
是 |
需檢查 |
否 |
否 |
LocalConnection (LocalConnection.isSupported) |
是 |
是 |
否 |
是 |
是 |
Microphone (Microphone.isSupported) |
是 |
是 |
需檢查 |
否 |
否 |
多頻道音頻 (Capabilities.hasMultiChannelAudio()) |
否 |
否 |
否 |
需檢查 |
需檢查 |
本機擴展 |
否 |
是 |
是 |
否 |
是 |
NativeMenu (NativeMenu.isSupported) |
是 |
是 |
否 |
否 |
否 |
NativeProcess (NativeProcess.isSupported) |
否 |
是 |
否 |
否 |
否 |
NativeWindow (NativeWindow.isSupported) |
是 |
是 |
否 |
否 |
否 |
NetworkInfo (NetworkInfo.isSupported) |
是 |
是 |
需檢查 |
是 |
是 |
使用默認應用程序打開文件 |
有限制 |
是 |
否 |
否 |
否 |
PrintJob (PrintJob.isSupported) |
是 |
是 |
否 |
否 |
否 |
SecureSocket (SecureSocket.isSupported) |
是 |
是 |
否 |
需檢查 |
需檢查 |
ServerSocket (ServerSocket.isSupported) |
是 |
是 |
否 |
否 |
否 |
Shader |
是 |
是 |
有限制 |
否 |
否 |
Stage3D (Stage.stage3Ds.length) |
是 |
是 |
是 |
是 |
是 |
舞臺方向 (Stage.supportsOrientationChange) |
否 |
否 |
是 |
否 |
否 |
StageVideo |
否 |
否 |
需檢查 |
是 |
是 |
StageWebView (StageWebView.isSupported) |
是 |
是 |
是 |
否 |
否 |
登錄時啓動應用程序 (NativeApplication.supportsStartAtLogin) |
是 |
是 |
否 |
否 |
否 |
StorageVolumeInfo (StorageVolumeInfo.isSupported) |
是 |
是 |
否 |
需檢查 |
需檢查 |
系統空閒模式 |
否 |
否 |
是 |
否 |
否 |
SystemTrayIcon (NativeApplication.supportsSystemTrayIcon) |
需檢查 |
需檢查 |
否 |
否 |
否 |
Text Layout Framework 輸入 |
是 |
是 |
否 |
否 |
否 |
Updater (Updater.isSupported) |
是 |
否 |
否 |
否 |
否 |
XMLSignatureValidator (XMLSignatureValidator.isSupported) |
是 |
是 |
否 |
是 |
是 |
表中各項具有以下含義:
-
檢查 — 在該配置文件中,某些設備支持該功能,但並非所有設備均支持該功能。在使用該功能之前,應在運行時檢查是否支持該功能。
-
有限制 — 支持該功能,但具有一些重要限制。有關更多信息,請參閱相關文檔。
-
否 — 該配置文件不支持該功能。
-
是 — 該配置文件支持該功能。請注意,個別計算設備可能缺少某項功能所需的硬件。例如,並非所有手機均帶有攝像頭。
在使用 ADL 進行調試時指定配置文件
ADL 將檢查是否在應用程序描述符文件的 supportedProfiles 元素中指定了支持的配置文件。如果已指定,則默認情況下,ADL 在調試時將使用列出的第一個支持的配置文件作爲配置文件。
可使用 -profile 命令行參數爲 ADL 調試會話指定一個配置文件。(請參閱 AIR Debug Launcher (ADL)。)無論是否在應用程序描述符文件的 supportedProfiles 元素中指定了配置文件,您都可以使用此參數。然而,如果您確實指定了一個 supportedProfiles 元素,則它必須包含您在命令行中指定的配置文件。否則,ADL 將生成錯誤。