对于拥有iOS和Android包装器项目的手机差距应用程序的www
资产文件夹的单个副本,是否有人有一个明智,干净的方法?
我意识到我可以使用符号链接做一些疯狂,但是它无法解决cordova.js
的交换问题。
我也意识到我可以编写一个构建脚本给xcopy
以及诸如此类的东西,这可能是我必须要做的,但我只是想知道其他人正在使用什么解决方案?
答案 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;