PhoneGap 3.4中Staging文件夹的用途?只能识别此文件夹中index.html的更改?

Cra*_*lot 7 cordova

我们注意到Staging在使用PhoneGap 3.4创建项目后,Xcode的Project Navigator中出现了一个文件夹.Staging使用PhoneGap 3.2或更低版本创建项目时,未显示此文件夹.PhoneGap文档非常糟糕,我们无法找到该文件夹​​存在的原因.

更重要的是,似乎index.html不再识别普通文件,只识别文件夹index.html内部的更改Staging.为什么是这样?

pet*_*oak 5

我也偶然发现了它并没有找到任何解释.我一直在困惑.

简短的结论:

"staging"文件夹包含分发到iOS应用程序包中的那些www资产.staging文件夹完全被文件夹my_cordova_project/www /(所有平台的通用www代码)和my_cordova_project/merges/ios /(Xcode项目的特定www代码)中的文件覆盖.这两个内容将被编辑.my_cordova_project/www /的内容在所有平台上保持不变,这是由cordova build命令组织的.从Cordova 3.3开始,似乎Xcode build for ...命令对于整个过程来说还不够,还需要调用该cordova build命令才能正确同步所有文件夹.


答案很长:

文件夹:
  my_cordova_project/platforms/ios/www /
在Xcode中"映射"到
  / my_xcode_project/staging/www /

您可以通过使用Finder临时更改文件名来检查这一点,并观察Xcode中的树.

文件夹:
  my_cordova_project/www /
在Xcode中"映射"到
  / my_xcode_project/www /

然后考虑Cordova的合并概念,允许为特定平台分发特定的www文档(参见此处).这是通过将它们放入文件夹my_cordova_project/merges /并使用命令行cordova build命令来实现的.它似乎cordova build不仅仅是为了第一次创建应用程序.如果您开始构建并在Xcode中观察树,您将看到/ my_ccode_project/staging /文件夹被my_cordova_project/www /完全覆盖(并由merges文件夹专门化).

这尤其与此相匹配引用在这里:

警告:使用CLI构建应用程序时,除非您知道自己在做什么,或者文档另有说明,否则不应编辑/ platforms /目录中的任何文件.在准备构建应用程序或重新安装插件时,会定期覆盖此目录中的文件.

当我使用早期版本的PhoneGap时,www内容在每个平台项目中进行存储和编辑,因此您必须将www从一个平台复制到另一个平台.今天,只有一个www文件夹可以自动分发到所有平台上cordova build.它非常方便,可以通过merges文件夹调整特定平台.

因此,cordova build可以在Eclipse ADT中观察到a的影响,甚至是交叉.只需在/ my_xcode_project/www /中更改Xcode中的内容,运行cordova build,刷新Eclipse ADT中的树,您就会发现您的更改已分发.

另一方面,Xcode的运行命令构建不会复制所有/ my_xcode_project/www / into / my_xcode_project/staging/www /,这有点令人费解.这只能通过cordova build命令完成.然而,如果您检查生成的应用程序,您将找到/ my_xcode_project/staging/www /中的文件,因此如果您编辑/ my_xcode_project/www /,您也必须调用cordova build.