【问题标题】:Errors when trying to build iOS with cordova in Mavericks (10.9.1)尝试在 Mavericks (10.9.1) 中使用 cordova 构建 iOS 时出错
【发布时间】:2014-02-05 08:31:09
【问题描述】:

几天前我为 Android 构建了应用程序,零问题,但现在,当我尝试为 iOS 做同样的事情(显然不是相同的命令)时,我总是收到错误。

我使用以下命令:

cordova platform add ios

我收到以下错误:

Downloading cordova library for ios...
Download complete
Creating ios project...
Error: An error occured during creation of ios sub-project. 
  File "/Users/xxxxx/.cordova/lib/ios/cordova/3.3.0/bin/update_cordova_subproject", line 31
     print __doc__
                 ^
SyntaxError: invalid syntax

at /usr/local/lib/node_modules/cordova/src/platform.js:282:30
at ChildProcess.exithandler (child_process.js:641:7)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:743:16)
at Socket.<anonymous> (child_process.js:956:11)
at Socket.EventEmitter.emit (events.js:95:17)
at Pipe.close (net.js:466:12)

我也试过:

phonegap build ios

但我得到了同样的错误,我不知道如何解决它。我一直在网上寻找,我发现有人遇到了同样的问题,但没有人可以帮助他。

我用 sudo 运行命令,这不是问题。

【问题讨论】:

  • 用文本编辑器打开update_cordova_subproject,请向我显示第 30 到 33 行。也许python脚本有一些错误
  • $ sudo npm update -g cordova run this.then build your project
  • @matthisb 你有这样的台词:def Usage(): print __doc__ sys.exit(1)@Sport 不行,我昨天试了一下。
  • @matthisb 我试图删除该行中一些可能的空格,但代码似乎正确。
  • 如果你删除这一行会发生什么:print __doc__

标签: ios cordova build platform


【解决方案1】:

我最近遇到了同样的错误。

我的问题是我默认使用 Python3。 print 在 Python2 中是一个语句,而在 Python3 中它是一个函数。

.cordova/lib/ios/cordova/3.3.0/bin/update_cordova_subproject 有一个调用 /bin/python 的 shebang。

我必须将 #!/bin/python 替换为 #!/bin/python2.7 才能在此脚本上使用 python2.7。

【讨论】:

    【解决方案2】:

    我和你有同样的问题。但是,用#!/bin/python2.7 替换“#!/bin/python”的方式对我不起作用。

    受 Matthieu Riegler 解释的启发,我将第 31 行中的 print __doc__ 更改为 print(__doc__),将第 97 行中的 print line 更改为 print(line)。最终,它起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 2017-10-06
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 2020-10-03
      • 2020-09-22
      相关资源
      最近更新 更多