ADOBE AIR:错误#16824:尝试自动更新时版本不匹配

ADOBE AIR:错误#16824:尝试自动更新时版本不匹配,air,auto-update,Air,Auto Update,目标: 这就是我的问题所在,我正在尝试将旧版本的软件X v1.0.7 AIR Runtime SDK 2.0自动更新为新版本X v1.0.8 AIR Runtime SDK 2.5 配置= 旧软件X是使用运行时SDK 2.0的1.0.7版。App.xml如下所示: 1.0.7 这个软件X就是这样,假设更新到版本1.0.8,它假设使用AIR运行时2.5 Im使用带有标记的update.xml文件: 1.0.8 计算机是MacOS X v10.6.6。运行最新的AIR RUNTIME 2.5 旧

目标:

这就是我的问题所在,我正在尝试将旧版本的软件X v1.0.7 AIR Runtime SDK 2.0自动更新为新版本X v1.0.8 AIR Runtime SDK 2.5

配置=

旧软件X是使用运行时SDK 2.0的1.0.7版。App.xml如下所示:

1.0.7

这个软件X就是这样,假设更新到版本1.0.8,它假设使用AIR运行时2.5

Im使用带有标记的update.xml文件:

1.0.8

计算机是MacOS X v10.6.6。运行最新的AIR RUNTIME 2.5

旧软件X的新版本1.0.8使用app.xml,如下所示:

1.0.8 #我隐藏的灵魂#

软件X v1.0.8正在使用标记publisherID,因此该软件将被识别为同一软件

发生了什么事

当我启动旧软件xv1.0.7时,它试图更新并引发错误16824。假设此错误意味着我的新软件版本与update.xml文件中定义的版本不匹配,但对我来说,这不是真的。。。那怎么了?有人可以帮忙吗?

解决方案如下:


如果您试图按照知识库文章中的说明进行操作,您会发现它告诉您要做什么,而不是如何做。我们告诉您要包括Air 2.5/Flex 4.5中更新的
ApplicationUpdate.swc
ApplicationUpdate\u ui.swc
,但这是最难的部分

在Flash Builder中,执行以下操作:

  • 转到“项目属性”、“生成路径”
  • 在列表中展开Flex框架并移除
    ApplicationUpdate.swc
    ApplcationUpdate\u ui.swc
  • 单击“添加SWC”并从Flex 4.5 framework位置添加这两个文件(Mac上的
    /Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/air/applicationUpdate.SWC
  • 如果您在Ant构建文件中使用
    mxmlc
    任务,这对我很有用:

    <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>
    

    我已经在我的博客上描述了。

    发生错误是因为我编译的应用程序中的版本号与服务器上UpdateDescriptor.xml中的版本号不同

    在AIR应用程序中,版本号在应用程序描述符文件中的标签
    versionNumber
    下定义:

    <versionNumber>2.3.0</versionNumber>
    
    2.3.0
    
    在服务器上的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>
    
    
    2.2.1
    http://www.example.com/project_2.2.1.air 
    
    这导致了以下错误:

    <?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>