Cordova无法使用--target读取未定义的属性“名称”

时间:2017-08-20 04:21:58

标签: angular cordova typescript ionic-framework ionic3

当我使用指定的--target param运行ionic / cordova emulator命令时,我得到了无法读取未定义错误的属性“name”。想知道是否有其他人之前已经得到过这个,以及是否有可用的修复程序。

命令运行:ionic cordova emulate ios --target =“iPhone-6,10.3”和离子cordova模拟ios - target“iPhone-6,10.3”

这是我的离子信息

cli包:

def check(): 
    datafile = file("res\powerserv 1.txt") 
    for line in datafile: 
        if storage in line: 
            return true 
        else: 
            return false

全球套餐:

@ionic/cli-utils  : 1.9.2
ionic (Ionic CLI) : 3.9.2

本地包裹:

Cordova CLI : 7.0.1 

系统:

@ionic/app-scripts : 2.1.4
Cordova Platforms  : android 6.1.2 ios 4.4.0
Ionic Framework    : ionic-angular 3.6.0

6 个答案:

答案 0 :(得分:6)

如果您运行以下操作并且没有设备(如图所示):

cordova run ios --list
Available ios devices:
Available ios virtual devices:

这可能是由于Ionic指定旧的ios-sim版本4.4.0而不是最新版本。

cd platforms/ios/cordova && npm install ios-sim@latest
$ cd ../../../
$ cordova platform rm ios
$ cordova platform add ios@4.5.0
$ ionic cordova emulate ios --target --list
> cordova run ios --list --target --emulator
Available ios devices:

Available ios virtual devices:

iPhone-5s, 11.0
iPhone-6, 11.0
iPhone-6-Plus, 11.0
iPhone-6s, 11.0
iPhone-6s-Plus, 11.0
iPad-Air, 11.0
iPad-Air-2, 11.0
iPhone-7, 11.0
iPhone-7-Plus, 11.0
iPhone-SE, 11.0
iPad--5th-generation-, 11.0
iPad-Pro--12-9-inch---2nd-generation-, 11.0
iPad-Pro--10-5-inch-, 11.0
Apple-Watch-38mm, watchOS 4.0
Apple-Watch-42mm, watchOS 4.0
Apple-Watch-Series-2-38mm, watchOS 4.0
Apple-Watch-Series-2-42mm, watchOS 4.0
Apple-TV-1080p, tvOS 11.0
Apple-TV-4K-4K, tvOS 11.0
Apple-TV-4K-1080p, tvOS 11.0
iPad-Pro--9-7-inch-, 11.0
iPad-Pro, 11.0

您可以详细了解此问题here on Git

答案 1 :(得分:5)

删除iOS版本。这对我有用:

cordova emulate ios --target "iPhone-7"

答案 2 :(得分:1)

看起来这是你的家伙:

issues.apache.org: cordova emulate ios with --target throws undefined error

他们说这是修正在cordova-ios@4.5.0

所以尝试做

sudo npm install cordova-ios@latest

它应该解决你的问题并可能带来一些新问题

我希望它有所帮助。

答案 3 :(得分:1)

对于使用当前设置在2020年仍面临此问题的人:

ionic 3
iOS 13 simulators
Xcode - 11.3.1
iOS cordova@4 (the version I was using -> 4.5.5)

请将您的iOS cordova平台更新为v5,例如:

ionic cordova platform rm ios

然后

ionic cordova platform add ios@5  (this will add ios - 5.1.1 which is 
current right now)

别忘了更新资源,因为您可能会在资源中的“ Xcode资产”下找到一些“科多瓦机器人”图像。

PS:我尝试了所有列出的解决方案,但对我没有任何帮助。另外,我收到了Ionic团队的时事通讯,指出Apple可能会停止与“ webKitView”相关的某些功能,因此他们建议使用“ cordova iOS v5”平台。因此,我认为现在是升级平台的好时机。

答案 4 :(得分:0)

首先使用xcode创建并命名模拟器(我建议使用易于输入的名称)。然后,一旦完成此操作,您可以通过在此IDE中运行项目或使用CLI命令通过xcode本身运行模拟器。 价: - https://developer.apple.com/library/content/documentation/IDEs/Conceptual/iOS_Simulator_Guide/TestingontheiOSSimulator/TestingontheiOSSimulator.html#//apple_ref/doc/uid/TP40012848-CH4-SW1

答案 5 :(得分:0)

在Xcode 10.3中,我不得不

  1. 打开Xcode并选择我要测试的iOS版本。 (就像Android Studio ...尴尬...) Download Simulators
      然后, cordova运行ios --list 返回的内容。

In Xcode 10.3 I had to open Xcode and select iOS version I wanted to test. (Like Android Studio.) Then, **cordova run ios --list** returned stuff.