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

Posted

技术标签:

【中文标题】无法在本地编译 Phonegap 应用程序【英文标题】:Unable to compile Phonegap app locally 【发布时间】:2015-07-06 10:12:48 【问题描述】:

我无法在本地编译我的 ios 应用,android 工作正常。

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

两者的版本输出:

$ cordova -v
5.1.1
$ phonegap -v
0.9.4

我已经安装了 XCode (v 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__ 上运行的路径中没有发生,但很难说。下面是生成的文件结构的截图:

我可以使用远程构建服务进行构建,但它非常费力,因为应用程序没有正确加载,所以我需要进行大量调试才能解决这个问题。

Node 安装在 0.12.5 版本。 NPM 安装在 2.11.2 版本。

我已经重装了无数次平台,总是出现这个错误。

【问题讨论】:

能不能先卸载平台再安装一遍试试? 我已经重新安装了很多次平台。总是同样的错误。 我认为 xcode 4 不再受支持,请尝试更新到 xcode 5 和最新的 xcode 命令行工具 您确定这与 XCode 有关吗?据我所知,它甚至没有达到那个地步? 您是否尝试过通过cordova 和平台ios 构建一个“hello world”应用程序?尝试在基础应用程序上运行构建命令并查看显示的错误(如果有)。也许存在与配置相关的路径问题。我还建议检查您的 bash 配置文件设置和环境变量。 【参考方案1】:

这个问题有点老了,但我会抛出一些东西:

    我的 ios 平台的命令行版本正在运行——它没有__CLI__... 子目录。只是一个数据点。 我想知道 Xcode 相对于其构建路径的设置方式是否有什么奇怪的地方。请参阅此答案以确保正确设置输出目录:still getting <Cordova/CDVViewController.h> file not found error in xcode。我在 Xcode 中设置了桌面和移动应用程序,我必须记住来回切换此设置。 PhoneGap / Cordova 一直在逐步淘汰旧版本的 ios 及其新版本。如果 cordova 5.1.1 不支持 Xcode 4.6.2,我不会感到惊讶。您可能想尝试使用旧版本的 cordova 库。

【讨论】:

以上是关于无法在本地编译 Phonegap 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法获得本地通知以在 phonegap 中触发

XCode PhoneGap 本地化

PhoneGap - 本地手机主屏幕的按钮

Phonegap 构建应用程序在 android 上无法正常工作

我无法在 iPhone 的 Phonegap 应用程序上显示图标

Phonegap 本地通知插件不起作用