我正在使用:
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。
我搜索并找到了这个解决方案:
引用
找到名为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);
应该在这里进行复制工作。但是副本在我的实例中不起作用。
答案 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已经发布解决了这个问题。