Cordova错误:您的ios平台没有Api.js

时间:2017-05-18 08:36:27

标签: cordova cordova-ios

我正在尝试构建一个cordova ios应用程序,但没有太多运气和奇怪的错误。

  

将此版本的Cordova与旧版本的cordova-ios一起使用   弃用。升级至cordova-ios@4.0.0或更新版本。

     

错误:您的ios平台没有Api.js

第一个警告说我的cordov-ios版本已经过时了,这很奇怪,因为这是我的输出:

$ cordova --version
7.0.1



$ cordova platform version ios

Installed platforms:
  ios 4.4.0
Available platforms: 
  android ~6.2.2
  blackberry10 ~3.8.0 (deprecated)
  browser ~4.1.0
  osx ~4.0.1
  webos ~3.7.0

所以我显然有必要的最新版本。

然后是Api.js错误。造成这种情况的原因是什么?

  

错误:您的ios平台没有Api.js

有什么想法吗?

8 个答案:

答案 0 :(得分:50)

我遇到了这个问题但是设法通过简单地删除然后在我的项目中添加IOS平台来解决它:

UNNESTING

这似乎解决了在更新Cordova时遇到的任何问题......

答案 1 :(得分:24)

我猜测尝试使用弃用代码是查看错误消息的原因。

似乎应该使用最新版本的节点。我还为Xcode执行了所有软件更新。我还将iPhone连接到电脑。即使在那之后(在我更新节点之前),我仍然看到了这一点:

cordova platform add ios

Warning: using node version v0.12.0 which has been deprecated. Please upgrade to the latest node version available (v6.x is recommended).
Using cordova-fetch for cordova-ios@^4.4.0
Adding ios project...
Error: Your ios platform does not have Api.js

然后我决定通过updating node解决警告。最后成功:

sudo n latest
node --version
=> v8.0.0

cordova platform rm ios
cordova platform add ios

Using cordova-fetch for cordova-ios@~4.4.0
Adding ios project...
Creating Cordova project for the iOS platform:
    Path: platforms/ios
    Package: com.example.hello
    Name: HelloWorld
iOS project created with cordova-ios@4.4.0
Installing "cordova-plugin-whitelist" for ios
--save flag or autosave detected
Saving ios@~4.4.0 into config.xml file ...

答案 2 :(得分:2)

与最新版本的cordova(7.0.1)相同的问题

添加iOS平台时遇到错误,并设法通过将nodeJS升级到最新版本(6.11.1)来解决此问题

答案 3 :(得分:1)

我总是会解决此错误,删除平台并再次添加(在我的情况下为android)

page = get_parsed_page(url)
maps_info = get_maps_info(url)

if 'Best of 3' in maps_info:
    ...     # code to find winner/loser stuff omitted for brevity

    return (team_winner_map1, team_loser_map1,
            team_winner_map2, team_loser_map2,
            team_winner_map3, team_loser_map3) # move the current return statement here!

elif 'Best of 1' in maps_info:
    ...

    return (team_winner_map1, team_loser_map1) # return a 2-tuple in this case

else:  # report error if we don't get any of the strings we expect
    raise ValueError("Expected Best of 3 or Best of 1, got map-info: {!r}".format(map_info))

等到完成...

phonegap platform rm android

就是这样。让我知道它是否适合您。

答案 4 :(得分:0)

使用cordova@6.0解决了问题

答案 5 :(得分:0)

对于那些尝试更新NodeJ却无法正常工作的人。

转到检入您的platform / android或platform / ios文件夹。我的是空的。删除文件夹,然后再次运行ionic cordova add android/ios

答案 6 :(得分:0)

降级到cordova 8,并且可以正常工作。

答案 7 :(得分:0)

同时安装了Android和iOS也会发生此问题。至少我是这种情况。

当我运行命令时:

cordova platform rm android

开始工作