Cordova Build不在ios平台目录中更新index.html

时间:2015-11-04 17:20:33

标签: javascript ios xcode cordova

我正在使用:

Cordova 5.3.3

Xcode 6.2

使用Cordova教程: https://ccoenraets.github.io/cordova-tutorial/

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

当我更新根目录中的文件时,

cordova准备 cordova prepare ios 也没有更新ios的www dir。

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

22231767

引用

  

找到名为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);应该在这里进行复制工作。但是副本在我的实例中不起作用。

2 个答案:

答案 0 :(得分:0)

你知道什么......不是你希望得到的答案,但我已经注意到了phonegap构建服务的相同之处。有时我只需要多次运行构建命令。

也许你有一个文件,当前的构建用户不允许写,因为管理员可能拥有它。祝你好运

答案 1 :(得分:0)

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

因为我用自制程序安装了节点,我的修复程序是

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已经发布解决了这个问题。