如何组织多平台phonegap / cordova开发的代码

时间:2013-05-30 11:52:32

标签: cordova

对于拥有iOS和Android包装器项目的手机差距应用程序的www资产文件夹的单个副本,是否有人有一个明智,干净的方法?

我意识到我可以使用符号链接做一些疯狂,但是它无法解决cordova.js的交换问题。

我也意识到我可以编写一个构建脚本给xcopy以及诸如此类的东西,这可能是我必须要做的,但我只是想知道其他人正在使用什么解决方案?

2 个答案:

答案 0 :(得分:0)

编辑提供cordova推荐的方法:

从Cordova 3.X开始,新的CLI tools.支持此工作流程。它允许您创建Cordova项目,在单个/www/文件夹中编辑应用程序资产,并使用命令行用于将应用程序级/www/中的更改传播到各个特定于平台的资产位置的工具(例如适用于Android的res/www/或适用于iOS的/www/。)我在此答案中谈到了这一点:{ {3}}

我的旧答案仍然相关:

IBM Worklight提供此功能。您可以在/common/文件夹中创建应用程序代码,然后您可以在适当的/Android//iPhone/等文件夹中放置特定于设备的代码(如果需要)。您可以在此免费下载开发人员版:Should a phonegap plugin be declared in the config.xml file?

我确信还有其他产品,比如IBM Worklight。我知道Cordova邮件列表上有一些NetBeans开发人员。我确定还有其他消费产品(如果你发现任何请编辑这个答案并列出它们!)

答案 1 :(得分:0)

我有一个共同的'PhoneGap'文件夹和VS解决方案,然后在子目录'iOS'和'Android'中,每个平台都有一个单独的代码库,包含所有相关的Xcode和Eclipse工作区。这是任何特定于设备的调整,或通过模拟器进行测试,都可以轻松完成。

到目前为止,直截了当。

我认为由于OS X上存在问题,我决定反对符号链接?不太记得。

我当时正在使用TFS,因此我编写了一个控制台应用程序,该应用程序将在运行时将您在TFS中的挂起更改复制到您配置的子目录中。这意味着所有3个代码库将一起更新。我决定不自动执行此步骤,并让用户通过运行控制台应用程序来控制是否复制了他们的更改。该应用程序能够根据需要添加,编辑或删除现有文件,我还有一个要忽略的文件“黑名单”,其中包括cordova.js

根本没有花太多时间来敲门,MSDN文档是合理的: http://msdn.microsoft.com/en-us/library/bb138973.aspx http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.workspace.pendadd.aspx

这是一个片段:

var teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://dev:8080/tfs/MyCollection"));
versionControlServer = teamProjectCollection.GetService(typeof(VersionControlServer)) as VersionControlServer;
var pendingSets = versionControlServer.QueryPendingSets(new string[] { "$/" }, RecursionType.Full, workspaceInfo.Name, workspaceInfo.OwnerName);

if (pendingSets.Length > 0)
{
    var allPendingChanges = pendingSets[0].PendingChanges;
}

...

这些是命名空间:

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;