在使用ionic模拟命令行时(我假设它与cordova phoengap相同),如何选择设备,例如iPad或iPhone高屏幕。它总是默认为3.5英寸屏幕。
在使用ionic模拟命令行时(我假设它与cordova phoengap相同),如何选择设备,例如iPad或iPhone高屏幕。它总是默认为3.5英寸屏幕。
使用Ionic和Cordova的较新版本,可以使用以下任何命令列出可用的模拟器。以下命令已在Ionic v3.20.0和Cordova 8.0.0上进行了测试:
ionic cordova emulate --list # List any OS
cordova run --list # List any OS
cordova run ios --list # List specific OS
他们产生类似这样的结果:
Available ios virtual devices:
iPhone-5s, 11.2
iPhone-6, 11.2
iPhone-6-Plus, 11.2
iPhone-6s, 11.2
iPhone-6s-Plus, 11.2
iPhone-7, 11.2
iPhone-7-Plus, 11.2
iPhone-8, 11.2
iPhone-8-Plus, 11.2
iPhone-SE, 11.2
iPhone-X, 11.2
iPad-Air, 11.2
iPad-Air-2, 11.2
iPad--5th-generation-, 11.2
iPad-Pro--9-7-inch-, 11.2
iPad-Pro, 11.2
iPad-Pro--12-9-inch---2nd-generation-, 11.2
iPad-Pro--10-5-inch-, 11.2
Apple-Watch-38mm, watchOS 4.2
Apple-Watch-42mm, watchOS 4.2
Apple-Watch-Series-2-38mm, watchOS 4.2
Apple-Watch-Series-2-42mm, watchOS 4.2
Apple-Watch-Series-3-38mm, watchOS 4.2
Apple-Watch-Series-3-42mm, watchOS 4.2
Apple-TV-1080p, tvOS 11.2
要使用特定的操作系统启动模拟器,请使用:
ionic cordova emulate ios --target "iPhone-X"
参见: https://cordova.apache.org/docs/en/latest/reference/cordova-cli/#cordova-run-command
对于旧版Ionic和Cordova的安装,我使用RipTheJacker答案中提到的语法选择要模拟的设备,即:
ionic emulate ios --target="iPhone-4s"
然而,要找出可用的仿真模式,我运行了以下命令:
ios-sim showdevicetypes
这个命令将返回一个列表,类似于这样:
iPhone-4s, 8.4
iPhone-5, 8.4
iPhone-5s, 8.4
iPhone-6-Plus, 8.4
iPhone-6, 8.4
iPad-2, 8.4
iPad-Retina, 8.4
iPad-Air, 8.4
Resizable-iPhone, 8.4
Resizable-iPad, 8.4
cordova emulate ios --target="TARGET"
或者ionic emulate ios --target="TARGET"
其中TARGET
是以下之一:iPad、iPhone、iPad (Retina)、iPhone (Retina 3.5英寸)、iPhone (Retina 4英寸)
例如:ionic emulate ios --target="iPhone-5"
cordova
命令完成吗?或者如果我使用 ionic
命令,这也可以工作吗?例如:ionic emulate ios --target="TARGET"
。 - Mauker2018年5月更新
运行
ionic cordova run ios --target="iPhone-X"
您可以将iPhone-X
替换为列表中的任何内容。
./platforms/ios/cordova/lib/list-emulator-images
从项目的根目录开始(如Tod Thomson的评论中所说)
对于我来说,这个列表是
iPhone-5s, 11.3
iPhone-6, 11.3
iPhone-6-Plus, 11.3
iPhone-6s, 11.3
iPhone-6s-Plus, 11.3
iPhone-7, 11.3
iPhone-7-Plus, 11.3
iPhone-8, 11.3
iPhone-8-Plus, 11.3
iPhone-SE, 11.3
iPhone-X, 11.3
iPad-Air, 11.3
iPad-Air-2, 11.3
iPad--5th-generation-, 11.3
iPad-Pro--9-7-inch-, 11.3
iPad-Pro, 11.3
iPad-Pro--12-9-inch---2nd-generation-, 11.3
iPad-Pro--10-5-inch-, 11.3
Apple-TV-1080p, tvOS 11.3
Apple-TV-4K-4K, tvOS 11.3
Apple-TV-4K-1080p, tvOS 11.3
Apple-Watch-38mm, watchOS 4.2
Apple-Watch-42mm, watchOS 4.2
Apple-Watch-Series-2-38mm, watchOS 4.2
Apple-Watch-Series-2-42mm, watchOS 4.2
Apple-Watch-Series-3-38mm, watchOS 4.2
Apple-Watch-Series-3-42mm, watchOS 4.2
操作系统版本(例如11.3)可能会因您下载的镜像和XCode版本而有所更改。因此,如果此列表中的设备无法使用,请运行命令并获取自己的列表。
我不知道为什么这些答案对我不起作用。但它所做的是执行以下操作:
native-run --list
Virtual Devices:
iPad (5th generation) 12.2 11904882-5E5A-4941-B291-5D38F3B51E98
iPad (6th generation) 12.2 82079A1A-87C1-47EC-BEC2-69BA97FC440C
iPad Air 12.2 7E90921D-D166-4CE1-956F-0193EF6E972F
...
这将为我提供设备的ID,使我能够执行下一步操作:ionic cordova run ios --livereload --target "BA4986B3-9102-4250-91BF-7DDF7D7BC60D"
自从ionic2以来,我一直遇到同样的问题。看起来ionic/cordova忽略了ios-sim并在仿真运行时分配了自己的仿真器,请参考您安装的平台例如ios (platforms/ios/cordova/lib/run.js):
要查看可用的仿真器,请运行
ios-sim showdevicetypes
/ validate target device for ios-sim
// Valid values for "--target" (case sensitive):
var validTargets = ['iPhone-4s', 'iPhone-5', 'iPhone-5s', 'iPhone-6-Plus', 'iPhone-6',
'iPhone-6s-Plus', 'iPhone-6s', 'iPad-2', 'iPad-Retina', 'iPad-Air', 'iPad-Air-2',
'iPad-Pro', 'Resizable-iPhone', 'Resizable-iPad'];
if (!(runOptions.device) && runOptions.target && validTargets.indexOf(runOptions.target.split(',')[0]) < 0 ) {
return Q.reject(runOptions.target + ' is not a valid target for emulator');
}
请注意保留HTML标签。ionic emulate ios --target="iPhone-6s-Plus, 10.2"
./platforms/ios/cordova/lib/list-emulator-images
命令,以查看可用的 iOS 模拟器映像。 - Tod Thomsonionic cordova emulate --list
上运行得很好。ios-sim showdevicetypes
对我没有作用。 - Shane Loveland