无法在本地编译Phonegap应用程序

7

我无法在本地编译我的iOS应用程序,但Android可以正常工作。

我已经使用npm install -g [...]安装了cordovaphonegap。我正在运行OSX(10.7.5)。

两者的版本输出如下:

$ cordova -v
5.1.1
$ phonegap -v
0.9.4

我已经安装了XCode(版本为4.6.2)。我也已经安装了命令行工具。

无论是cordova还是phonegap工具都无法构建,似乎是因为同样的原因。运行phonegap build ios会输出:

$ phonegap build ios
  phonegap  detecting iOS SDK environment...
  phonegap  using the local environment
  phonegap  compiling iOS...
     error  ENOENT, no such file or directory '/Users/mike/apps/***/platforms/ios/__CLI__/config.xml'

以下是相同cordova命令的输出:

$ cordova build ios
cp: copyFileSync: could not write to dest file (code=ENOENT):/Users/mike/apps/***/platforms/ios/__CLI__/config.xml

cp: no such file or directory: /Users/mike/apps/***/platforms/ios/platform_www/*

Parsing /Users/mike/apps/***/platforms/ios/__CLI__/config.xml failed
Error: ENOENT, no such file or directory '/Users/mike/apps/***/platforms/ios/__CLI__/config.xml'
    at Error (native)
    at Object.fs.openSync (fs.js:500:18)
    at Object.fs.readFileSync (fs.js:352:15)
    at Object.module.exports.parseElementtreeSync (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/util/xml-helpers.js:118:27)
    at Object.ConfigParser (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/configparser/ConfigParser.js:33:24)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/prepare.js:115:32
    at Array.map (native)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/prepare.js:70:40
    at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:816:30)

我认为在路径中应该有一些替换运行在__CLI__上,但是很难判断。下面是此文件结构的截图: FileStructure
我能够使用远程构建服务进行构建,但这相当费力,因为应用程序没有正确加载,所以我需要进行大量调试来解决这个问题。
Node已安装在版本0.12.5。NPM已安装在版本2.11.2。
我已经多次重新安装了平台,但总是出现这个错误。

你能否尝试卸载平台并重新安装后再试一次? - Ranjith Varma
我已经多次重新安装了平台,但错误始终如一。 - Mike
我认为Xcode 4不再受支持了,请尝试更新到Xcode 5和最新的Xcode命令行工具。 - jcesarmobile
你确定这与XCode有关吗?从我所看到的情况来看,它甚至没有达到那个点? - Mike
你尝试过通过Cordova和iOS平台构建“hello world”应用程序吗?尝试在基本应用程序上运行构建命令,并查看是否显示任何错误。也许与配置相关的路径问题。我还建议检查您的bash配置文件设置和环境变量。 - jojo
1个回答

1
这个问题有点老了,但我会提供一些解决方案:
  1. 我已经运行了我的ios平台的命令行构建 - 它没有一个名为“__CLI__...”的子目录。这只是一个数据点。
  2. 我想知道Xcode设置与其构建路径的关系是否有些奇怪。请参阅此答案以确保输出目录设置正确:在xcode中仍然遇到“<Cordova/CDVViewController.h>文件找不到”的错误。我在Xcode中设置了桌面和移动应用程序,并且必须记住来回切换此设置。
  3. PhoneGap / Cordova已经逐步淘汰旧版本的ios,并发布了新版本。如果cordova 5.1.1不支持Xcode 4.6.2,这不会让我感到惊讶。您可能需要尝试使用较旧版本的cordova库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接