此应用程序最后被更新版本的Sencha Cmd修改-版本不匹配



我试图将sencha cmd生产包添加到我的构建过程中。但是,当我需要打包应用程序的最后一步失败时,出现了上面的错误。

我不明白的是,这是一个从SVN仓库中新构建的应用程序。sencha cmd是我刚刚升级的最新版本。所以我的问题是,当它说应用程序是最后一次修改的新版本的sencha cmd是对我撒谎吗?

2件不正确的事情:

  1. 这个应用程序不可能被新版本修改过,因为我已经刚刚将sencha CMD的构建机版本升级到最新版本版本。
  2. 这个应用程序是由Sencha cmd在过去创建的,但是这将比当前版本的版本更老机器。

所以我对如何解决这个问题感到困惑。Sencha Cmd如何"知道"该应用程序最后被不同版本修改?是否有一些文件在我的app文件夹,可以捏造,使它认为版本是最新的?Sencha Cmd与我的应用程序代码库有什么关系?

您可以在更新模式下运行新版本的Cmd。我认为这实际上是为了更新Sencha Touch版本,但如果你把它指向当前版本(2.1),那么它就会自己更新。

所以,例如,用最新的Cmd运行下面这行:

sencha app upgrade[2.1所在目录]

确保你先拿一份app.js的副本,因为新版本会破坏它——更新后把你的旧版本放回去。还要注意,它会更新你的"Touch"目录,所以要确保这个目录也备份了。

一旦更新已经运行并且你已经把app.js文件放回去了,你的项目现在应该用最新的cmd来构建。

如果您使用Sencha Cmd创建/构建应用程序,您将在以下文件中获得相关信息(workspace.cmd.version, app.cmd.version):

PROJECT_ROOT/touch/cmd/sencha.cfg // This is SDK requirements
PROJECT_ROOT/.sencha/workspace/sencha.cfg // This is workspace build config
PROJECT_ROOT/.sencha/app/sencha.cfg  // This is app build config

您可以尝试在这些文件中捏造Cmd版本,并让我们知道它是否有效:)

在完成sencha app upgrade—noframework之后,确保同时运行"sencha app refresh"来更新.sencha元数据

这个误导性的错误信息是指您正在使用的机器上Sencha的Cmd工具的版本更改。您可以使用以下命令升级Cmd脚手架:

sencha app upgrade --noframework

From: 'sencha help app upgrade'

Options
  * --noframework, -no - Upgrade only the Sencha Cmd scaffolding and not the SDK

升级前一定要备份你的应用。upgrade命令会警告你需要解决的冲突(比如对app.js的自定义更改)。当您打开这些文件时,差异将以标准的diff格式显示:

<<<<<<< Generated
/*
This file is generated and updated by Sencha Cmd. You can edit this file as
needed for your application, but these edits will have to be merged by
Sencha Cmd when it performs code generation tasks such as generating new
models, controllers or views and when running "sencha app upgrade".
Ideally changes to this file would be limited and most work would be done
in other places (such as Controllers). If Sencha Cmd cannot merge your
changes and its generated code, it will produce a "merge conflict" that you
will need to resolve manually.
*/
...
>>>>>>> Custom
...

解决冲突(删除>>>>>> X行并确保文件中包含正确的行),您应该都设置好了。最有可能有冲突的文件是app.js -比较该文件的备份版本和修改版本是一个好主意,以便对更改有信心。

这似乎意味着在应用程序上工作的所有开发人员需要运行相同的Cmd版本,所以也要记住这一点。

最新更新