2011-01-20 2 views
2

목적 : 그래서 여기ADOBE AIR : 오류 번호를 16824 : 버전 불일치 자동 업데이트하는 동안

, 나는이에 자동 업데이트에 이전 버전의 소프트웨어의 X v1.0.7 AIR 런타임 SDK 2.0을 내 문제에 노력하고있다 새 버전 X v1.0.8 AIR 런타임 SDK 2.5. 런타임 SDK 2.0을 사용

CONFIGURATION =

오래된 소프트웨어 X는 버전 1.0.7. App.xml 다음과 같은 :

< 애플리케이션의 xmlns = "http://ns.adobe.com/air/application/2.0">

< 버전> 1.0.7 </버전>

이 소프트웨어 X는 AIR 런타임 2.5를 사용한다고 가정되는 버전 1.0.8로 업데이트한다고 가정합니다.

태그와 함께하여 update.xml 파일을 사용

임 :

< 업데이트의 xmlns = "http://ns.adobe.com/air/framework/update/description/1.0"> < 버전> 1.0. 8 </버전>

컴퓨터는 MacOS X v10.6.6입니다.

< 애플리케이션의 xmlns = "HTTP : //ns.adobe 최신 AIR 런타임 2.5

이전 소프트웨어 X의 새로운 버전, 버전 1.0.8을 실행, 다음과 같은 app.xml을 사용하고 있습니다. COM/공기/응용 프로그램/2.5 "> <의 versionNumber> 1.0.8 < /의 versionNumber> < publisherID를> # 내 숨겨진 publisherID를 # </publisherID를> 소프트웨어 X를 v1.0.8로 태그 publisherID를 사용하고

소위 소프트웨어는 동일한 소프트웨어로 인식됩니다.

어떻게되는가?

이전 소프트웨어 X v1.0.7을 시작하면 오류 16824가 업데이트되고 발생합니다.이 오류는 내 소프트웨어 버전이 update.xml에 정의 된 버전과 일치하지 않는다고 가정합니다. 하지만 그게 사실이 아니야. 그래서 뭐가 잘못 됐어? 누구든지 도울 수 있니?

답변

0

, 당신은 당신이 무엇을해야 하는지를하지만 방법을 알려줍니다 찾을 수 있습니다. 업데이트 된 applicationupdater.swcapplicationupdater_ui.swc을 Air 2.5/Flex 4.5에서 포함하고 있지만 이 가장 어려운 부분입니다.플래시 빌더에서

이 작업을 수행 :

  1. 이동을 "프로젝트 속성", 목록에있는 플렉스 프레임 워크를 펼치고 applicationupdater.swcapplcationupdater_ui.swc을 제거
  2. 을 "경로를 구축"할 수 있습니다.
  3. "Add SWC"를 클릭하고 Flex 4.5 프레임 워크 위치 (Mac의 경우 /Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/air/applicationupdater.swc)에서 두 파일을 추가하십시오. 나는에게 피난처를 명령 줄 옵션의

    <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 작업을 사용하는 경우,이 나를 위해 일했다 테스트를 거쳤습니다.

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 

블로그에 entire process with a bit more background information을 설명했습니다.

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> 
: 나는 다른 번호를 가지고 서버에 UpdateDescriptor.xml 파일에서

<versionNumber>2.3.0</versionNumber> 

: AIR 응용 프로그램에서

버전 번호가 태그 versionNumber에서 응용 프로그램 설명자 파일에 정의되어

enter image description here

:

그것은이 오류가 발생