Javascript Cordova Build未更新ios平台目录中的index.html

Javascript Cordova Build未更新ios平台目录中的index.html,javascript,ios,xcode,cordova,Javascript,Ios,Xcode,Cordova,我正在使用: Cordova 5.3.3 Xcode 6.2 使用Cordova教程: 修改运行cordova build ios的index.html的www目录未在ios平台目录中更新 cordova prepare和cordova prepare ios在我更新根目录中的文件时,也不会更新ios的www目录 我搜索并找到了这个解决方案: 哪些参考文献 查找名为copy-www-build-step.sh的文件。 我的文件在[project_folder]/platforms/ios/c

我正在使用:

Cordova 5.3.3

Xcode 6.2

使用Cordova教程:

修改运行cordova build ios的index.html的www目录未在ios平台目录中更新

cordova preparecordova prepare ios在我更新根目录中的文件时,也不会更新ios的www目录

我搜索并找到了这个解决方案:

哪些参考文献

查找名为copy-www-build-step.sh的文件。 我的文件在[project_folder]/platforms/ios/cordova/lib/copy-www-build-step.sh中

然而,在我的安装中,我有一个javascript文件,而不是shell脚本版本

[project_folder]/platforms/ios/cordova/lib/copy-www-build-step.js

在该文件中:

var BUILT_PRODUCTS_DIR = process.env.BUILT_PRODUCTS_DIR,
    FULL_PRODUCT_NAME = process.env.FULL_PRODUCT_NAME,
    COPY_HIDDEN = process.env.COPY_HIDDEN,
    PROJECT_FILE_PATH = process.env.PROJECT_FILE_PATH;

var path = require('path'),
    fs = require('fs'),
    shell = require('shelljs'),
    glob = require('glob'),
    srcDir = 'www',
    dstDir = path.join(BUILT_PRODUCTS_DIR, FULL_PRODUCT_NAME),
    dstWwwDir = path.join(dstDir, 'www');

if(!BUILT_PRODUCTS_DIR) {
    console.error('The script is meant to be run as an Xcode build step and relies on env variables set by Xcode.');
    process.exit(1);
}

try {
    fs.statSync(srcDir);
} catch (e) {
    console.error('Path does not exist: ' + srcDir);
    process.exit(1);
}

// Code signing files must be removed or else there are
// resource signing errors.
shell.rm('-rf', dstWwwDir);
shell.rm('-rf', path.join(dstDir, '_CodeSignature'));
shell.rm('-rf', path.join(dstDir, 'PkgInfo'));
shell.rm('-rf', path.join(dstDir, 'embedded.mobileprovision'));

// Copy www dir recursively
if(!!COPY_HIDDEN) {
    shell.mkdir('-p', dstWwwDir);
    shell.cp('-r', glob.sync(srcDir + '/**', { dot: true }), dstWwwDir);
} else {
    shell.cp('-r', srcDir, dstDir);
}

// Copy the config.xml file.
shell.cp('-f', path.join(path.dirname(PROJECT_FILE_PATH), path.basename(PROJECT_FILE_PATH, '.xcodeproj'), 'config.xml'),
    dstDir);

所以它看起来像
shell.cp('-r',srcDir,dstDir)应该在这里进行复制工作。但是,副本在我的实例中不起作用。

你知道什么…这不是你希望的答案,但我注意到phonegap构建服务也有同样的问题。有时我只需要多次运行build命令


可能您有一个当前生成用户不允许写入的文件,因为它可能是管理员拥有的。祝您好运

正如jcesarmobile所述,Cordova 5.3.3和Node 5.0.0存在问题

当我用自制软件安装node时,我的修复程序是

brew tap homebrew/versions
brew unlink node
brew uninstall node
brew search node (gives the list of available version)
brew install homebrew/versions/node4-lts

此时ios构建是成功的,但正如jcesarmobile指出的那样,Cordova 5.4.0已经发布以解决此问题。

我在js文件中添加了一些
console.log()
行,但没有看到任何输出,我怀疑由于其他一些配置问题,该文件没有被调用。我还以sudo的身份运行它。我还编辑了复制命令以使用force标志<代码>shell.cp('-rf',srcDir,dstDir)您正在使用节点5吗?tha版本和cordovayes 5.0.0存在一些问题。谢谢你的提示。我会考虑降级。Cordova 5.4.0已经发布,并修复了node 5ha的问题,正如我让node 4.2.2正常工作一样。谢谢你的提示,这确实是个问题。