"Ошибка Flex #1001: несоответствие дайджеста с RSL" при обновлении * только * веб-приложения Flex
Я получаю следующую ошибку при обновлении только файла swf веб-приложения Flex:
Ошибка Flex #1001: несоответствие дайджеста с RSL
Я понимаю, почему это происходит (потому что дайджест, который был в catalog.xml RSL, не соответствует ожидаемому SWF-файлу веб-приложения Flex), но не может найти способ успешно обновить только веб-приложение Flex. У меня вопрос, как это можно сделать с помощью ANT с Flex 3.6 SDK?
Я попытался заставить веб-приложение Flex игнорировать значение дайджеста, установив для свойства 'compute-digest' значение false в теге compc для всех RSL:
<compc compiler.as3="true"
output="${temp-swc-dir}/@{name}.swc"
incremental="false"
fork="false"
compiler.show-deprecation-warnings="false"
compiler.verbose-stacktraces="${VERBOSE}"
compute-digest="false"
>
Но когда mxmlc выполняется, он не упоминает дайджест. Есть ли что-то, что нужно изменить в моем теге mxmlc?
<mxmlc file="${target-dir}/@{build-directory}/revolution/src/${SWF_NAME}.mxml"
output="${target-dir}/@{build-directory}/${SWF_NAME}.swf"
actionscript-file-encoding="UTF-8"
keep-generated-actionscript="false"
incremental="false"
debug="@{qa-build}"
fork="false"
static-link-runtime-shared-libraries="false"
use-network="true"
>
<runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/as3corelib.swc">
<url rsl-url="rsl/as3corelib.swf" />
</runtime-shared-library-path>
<runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/asx.swc">
<url rsl-url="rsl/asx.swf" />
</runtime-shared-library-path>
<runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/top-level-tools.swc">
<url rsl-url="rsl/top-level-tools.swf" />
</runtime-shared-library-path>
<source-path path-element="${target-dir}/@{build-directory}/revolution/src" />
<!-- list of path elements that form the roots of ActionScript class hierarchies. -->
<source-path path-element="${FLEX_HOME}/frameworks" />
<!-- list of SWC files or directories that contain SWC files. -->
<compiler.library-path dir="${FLEX_HOME}/frameworks/libs" append="true">
<include name="framework.swc" />
</compiler.library-path>
<compiler.library-path dir="${target-dir}/@{build-directory}/swc" append="true">
<include name="*.swc" />
</compiler.library-path>
<compiler.library-path dir="${target-dir}/@{build-directory}/revolution/libs" append="true">
<include name="*.swc" />
</compiler.library-path>
</mxmlc>
1 ответ
Я думаю, что Flex поставляется с инструментом для обновления дайджестов. Это называется "дайджест". Я задокументировал шаги, необходимые для создания RSL из сторонних библиотек SWC в моей Wiki ... Мне кажется, что ваши RSL и SWC больше не совпадают. https://dev.c-ware.de/confluence/display/PUBLIC/Creating+RSLs+from+your+3rd+party+libs Так что если вы просто создадите RSL из SWC, который вы используете, вы должны быть на безопасной стороне.