Cordova 3.5.0 iOS 应用程序中的暂存文件夹需要啥?

Posted

技术标签:

【中文标题】Cordova 3.5.0 iOS 应用程序中的暂存文件夹需要啥?【英文标题】:What is the need of staging folder in Cordova 3.5.0 iOS application?Cordova 3.5.0 iOS 应用程序中的暂存文件夹需要什么? 【发布时间】:2014-08-25 14:33:25 【问题描述】:

我们正在开发一个混合 ios 应用程序。以前我们使用的是 Cordova 3.2.0 版本。最近我们正在将我们的 Cordova 版本升级到 3.5.0。使用 Cordova 3.5.0 创建一个新项目并使用 Xcode 5.1.1 打开它后,我们可以在 Xcode 项目结构中看到一个名为“Staging”的新文件夹(这对我们来说很奇怪)。

在项目的根文件夹中,没有找到暂存文件夹。下面是截图。

但是用 Xcode 打开它后,“www”文件夹和“config.xml”都在 staging 目录而不是根目录下。另外,我可以看到两组 www 文件夹和 config.xml 文件。根文件夹下的 www 文件夹和 config.xml 文件显示为红色 (这可能是因为我只使用了 my_cordova_project --> platform --> ios 目录并将其复制到其他地方。我是计划仅将 ios 文件夹提交到我的版本控制工具)。我只是删除了这两个引用。

如果这是一个问题,有人可以解释一下吗?我也可以使用 Cordova 3.5.0 获得旧的 Xcode 项目结构吗?如果有任何澄清,请告诉我。

【问题讨论】:

【参考方案1】:

对不起,我没听懂你的问题。暂存只是一个指向 ios-proj/www 文件夹的链接文件夹,您可以正常修改原始代码。

在多平台项目中,“cordova platform add”将为每个平台创建一个不同的项目,在这种情况下,您应该在通用代码中进行编辑,并通过“cordova build”同步源代码,这将复制和编译代码。

关于暂存目的的类似问题: Purpose of Staging folder in PhoneGap 3.4? Only changes to index.html in this folder get recognized?

【讨论】:

谢谢。但我不清楚。你能解释一下吗?可能你会给出一些例子或参考链接。 我刚刚添加了一些解释。 似乎我正在慢慢理解这一点。但现在还不完全清楚。我已经稍微编辑了这个问题以使事情变得清晰。你能告诉我我是否朝着正确的方向前进。建议我是否应该做任何更改。谢谢。 出了点问题。原始的 www 通用代码应该在项目中。请按以下步骤操作: 你能告诉我我需要遵循哪些步骤吗?供您参考,在使用 CLI 创建 Cordova 项目后,我想单独保留 ios xcode 项目。其他支持 Cordova 相关的文件夹,我存储在我的语言环境和机器中以备将来使用【参考方案2】:

我在理解 /www 和 /platforms/ios/www 的关系时遇到了同样的问题。我意识到前者应该包含所有平台通用的源代码,而后者应该包含特定于平台的修改。 Xcode 项目中出现的 Staging 文件夹是指向后者文件夹的链接。修改前一个文件夹上的内容并运行应用程序似乎没有任何效果 - 没有看到任何修改。

我缺少的是修改后我仍然需要在命令行上进行构建:

cordova build ios

之后,将公共文件夹中的修改复制到平台特定文件夹并在 Xcode 中运行项目会显示修改后的内容。

【讨论】:

【参考方案3】:

你应该sudo cordova build在进行任何更改之后,然后在 XCode 中构建/运行。

这将导致 Cordova 使用具有某些 Cordova 魔法(例如特定于设备的插件)的资产的“暂存”(即为生产而组装)版本更新 /staging 文件夹。将 /staging 与 /www 进行比较,您会注意到前者中的一些附加文件。

【讨论】:

以上是关于Cordova 3.5.0 iOS 应用程序中的暂存文件夹需要啥?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 和 Cordova:应用程序在首次启动时立即请求推送通知权限

无法在 Phonegap / Cordova 3.5.0-0.2.4 上运行联系人插件

Phonegap (NOT Cordova) 3.5 示例应用程序未启动 deviceready

从cordova html页面(cordova)加载保存在iOS App Documents目录中的图像?

ios上cordova应用程序中的视频没有声音

Cordova 3.5.0 FileError.NOT_FOUND_ERR(代码:1)上传文件时出错 > 256MB