4

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

我不明白的是,这是一个来自 SVN 存储库的新建应用程序。sencha cmd 是我刚刚升级的最新版本。所以我的问题是,当它声明应用程序最后一次被更新版本的 sencha cmd 修改时,它是在骗我吗?

2不正确的事情:

  1. 该应用程序无法被较新版本修改,因为我刚刚将 sencha cmd 的构建机版本升级到最新版本。
  2. 该应用程序过去是由 Sencha cmd 创建的,但这比构建机器上的当前应用程序要旧。

所以我很困惑如何解决这个问题。Sencha Cmd 是如何“知道”该应用程序最后一次被不同版本修改的?我的 \app 文件夹中是否有一些文件可以被篡改,使其认为版本是最新的?Sencha Cmd 与我的应用程序代码库有什么关系?

4

4 回答 4

4

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

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

sencha app升级【2.1所在目录】

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

运行更新并放回 app.js 文件后,您的项目现在应该使用最新的 cmd 构建。

于 2013-04-25T21:47:40.433 回答
1

如果您使用 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 版本,并让我们知道它是否有效 :)

于 2013-04-25T06:12:01.553 回答
1

完成 sencha app upgrade --noframework 后,确保还运行“sencha app refresh”以更新 .sencha 元数据。

于 2013-05-19T19:11:22.370 回答
0

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

sencha app upgrade --noframework

来自:'sencha帮助应用升级'

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

在升级之前一定要备份你的应用程序。upgrade 命令将警告您需要解决的冲突(例如对 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
...

解决冲突(删除 >>>>>> X 行并确保文件中包含正确的行),您应该已准备就绪。最有可能发生冲突的文件是 app.js - 最好将该文件的备份版本与修改后的版本进行比较,以确信更改。

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

于 2013-05-06T16:29:00.030 回答