ADOBE AIR: ошибка № 16824: несоответствие версий при попытке автоматического обновления - PullRequest
2 голосов
/ 20 января 2011

ЦЕЛЬ:

Итак, вот моя проблема, я пытаюсь автоматически обновить старую версию программного обеспечения X v1.0.7 AIR Runtime SDK 2.0 до новой версии X v1.0.8 AIR Runtime SDK 2.5.

CONFIGURATION =

Старое программное обеспечение X - версия 1.0.7, использующая исполняемый SDK 2.0.App.xml следующим образом:

<версия> 1.0.7 </ версия>

Это программное обеспечение X, так что, предположим, для обновления до версии1.0.8, в которой предполагается использовать среду выполнения AIR 2.5.

Я использую файл update.xml с тегами:

<версия> 1.0.8 </версия>

Компьютер MacOS X v10.6.6.работает последняя версия AIR RUNTIME 2.5

В новой версии старого программного обеспечения X, версии 1.0.8, используется файл app.xml следующим образом:

1.0.8 #my скрытый publisherID #

Программное обеспечение X v1.0.8 использует тег publisherID, поэтому программное обеспечение будет распознаваться как то же программное обеспечение.

ЧТО ПРОИСХОДИТ?

Когда я запускаю старое программное обеспечение X v1.0.7, оно пытается обновить и вызвать ошибку 16824. Предполагается, что эта ошибка означает, что моя версия нового программного обеспечения делаетне совпадает с версией, определенной в файле update.xml, но для меня это не так ... так что же не так? Кто-нибудь может помочь?

Ответы [ 3 ]

1 голос
/ 21 января 2011
0 голосов
/ 02 марта 2016

Ошибка произошла для меня, потому что номер версии в моем скомпилированном приложении отличался от номера версии в UpdateDescriptor.xml на сервере.

В приложении AIR номер версии определяется в файле дескриптора приложения под тегом versionNumber:

<versionNumber>2.3.0</versionNumber>

В файле UpdateDescriptor.xml на сервере у меня было другое число:

<?xml version="1.0" encoding="utf-8"?> 
<update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> 
    <versionNumber>2.2.1</versionNumber>
    <url>http://www.example.com/project_2.2.1.air</url> 
    <description><![CDATA[List the changes in this version here]]> 
    </description> 
</update>

Это привело к этой ошибке:

enter image description here

0 голосов
/ 27 июля 2011

Если вы пытаетесь следовать инструкциям в статье базы знаний, вы обнаружите, что она говорит вам , что делать, но не , как делать это.Вам предлагается включить обновленные applicationupdater.swc и applicationupdater_ui.swc из Air 2.5 / Flex 4.5, но , что самая сложная часть.

В Flash Builder сделайте следующее:

  1. Перейдите в «Свойства проекта», «Путь сборки»
  2. Разверните Flex Framework в списке и удалите applicationupdater.swc и applcationupdater_ui.swc.
  3. Нажмите «Добавить SWC»и добавьте эти два файла из своего каркаса Flex 4.5 (/Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/air/applicationupdater.swc на Mac).

Если вы используете задачу mxmlc в файле сборки Ant, это сработало для меня:

<target name="compile" depends="css, copy_assets">
  <mxmlc file="${MAIN_SOURCE_FILE}" output="${OUTPUT}/${FLEX_APP_NAME}.swf">

    <load-config filename="${FLEX_HOME}/frameworks/air-config.xml"/>

    <compiler.source-path  path-element="${APP_ROOT}/src"/>
    <compiler.source-path  path-element="${APP_ROOT}/locale/{locale}"/>

    <!-- append=false clears your library-path -->
    <compiler.library-path dir="${FLEX_HOME}" append="false">
      <!-- Now we need to re-add the flex libs -->
      <include name="libs"/>
      <include name="locale/{locale}"/>
    </compiler.library-path>
    <compiler.library-path dir="/" append="true">
      <!-- Add the updater framework from Flex 4.5 / Air 2.6 -->
      <include name="Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/air/applicationupdater_ui.swc"/>
      <include name="Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/air/applicationupdater.swc"/>
      <!-- You may need to adjust these paths -->
    </compiler.library-path>
    <compiler.library-path dir="${FLEX_HOME}" append="true">
      <!-- Re-add the rest of the air libs -->
      <include name="libs/air"/>
    </compiler.library-path>
    <compiler.library-path dir="${APP_ROOT}/libs/" append="true">
      <!-- Your custom libraries here -->
    </compiler.library-path>
  </mxmlc>
</target>

Для компилятора командной строки mxmlc должен работать эквивалентный набор параметров командной строки, но я не проверял это:

mxmlc -library-path=$(FLEX_HOME)/libs $(FLEX_HOME)/locale/{locale} \
$(FLEX45_HOME)/frameworks/libs/air/applicationupdater.swc \
$(FLEX45_HOME)/frameworks/libs/air/applicationupdater_ui.swc \
$(FLEX_HOME)/frameworks/libs/air \
... your custom libs \
... other compiler options

Я описал весь процесс счуть больше справочной информации в моем блоге.

...