此应用最后由较新版本的Sencha Cmd修改 - 版本不匹配

时间:2013-04-23 21:25:16

标签: sencha-touch sencha-touch-2 sencha-cmd

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

我不明白这是一个新生的SVN仓库应用程序。 sencha cmd是最新的,因为我刚刚升级。所以我的问题是当它指出应用程序最后被较新版本的sencha cmd修改时它对我说谎了吗?

2件不正确的事情:

  1. 由于我已经修改了新版本的应用程序 刚刚将sencha cmd的构建机器版本升级到最新版本 版本
  2. 该应用程序已由Sencha cmd创建,但是 这将比构建中的当前版本更旧 机。
  3. 所以我很困惑如何解决这个问题。 Sencha Cmd'如何知道'该应用程序最后一次被另一个版本修改过?我的\ app文件夹中是否有一些可以捏造的文件,以便它认为版本是最新的?那么Sencha Cmd与我的应用程序代码库有什么关系呢?

4 个答案:

答案 0 :(得分:4)

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

因此,例如,使用最新的Cmd运行以下行:

sencha app upgrade [2.1所在的目录]

请确保首先获取app.js的副本,因为新版本会破坏这一点 - 只需在更新后将旧版本恢复原状。另请注意,它将更新您的“Touch”目录,因此请确保此备份也已备份。

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

答案 1 :(得分:1)

如果您使用Sencha Cmd创建/构建应用程序,您将在以下文件中包含相关信息(workspace.cmd.versionapp.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版本,并告诉我们它是否有效:)

答案 2 :(得分:1)

在做了sencha app升级--noframework之后,请务必运行“sencha app refresh”来更新.sencha元数据。

答案 3 :(得分:0)

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

sencha app upgrade --noframework

来自:'sencha help app upgrade'

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

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

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

解决冲突(删除&gt;&gt;&gt;&gt;&gt;&gt; X行,并确保文件中包含正确的行),您应该全部设置。最有可能发生冲突的文件是app.js - 将您备份的该文件版本与修改后的版本进行比较是个好主意,以确保更改。

这似乎意味着所有使用该应用程序的开发人员都需要运行相同的Cmd版本,因此请记住这一点。