64

在使用 ionic emulate 命令行时(我假设它与 cordova phoengap 相同)我如何选择设备 - ipad 或 iphone 高屏幕。它始终默认为 3.5" 屏幕。

4

6 回答 6

121

对于 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
于 2015-07-10T20:52:17.120 回答
46
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"

于 2014-05-15T10:33:16.723 回答
15

2018 年 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 版本而改变。因此,如果此列表中的设备不起作用,只需运行命令并获取您自己的列表。

于 2018-01-07T21:17:02.930 回答
12

我不知道为什么这个答案对我不起作用。但它所做的是接下来的事情:

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"
于 2019-07-29T01:44:43.397 回答
2

自ionic2以来我一直有同样的问题。看起来 ionic/cordova 忽略 ios-sim 并在仿真运行时分配它自己的,请参阅您安装的平台,例如 ios (platforms/ios/cordova/lib/run.js):

查看可用的模拟器运行

ios-sim 显示设备类型

/ 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');
}

只要您在列表下运行正确的模拟器,就可以了:

离子模拟 ios --target="iPhone-6s-Plus, 10.2"

于 2017-01-19T23:25:37.373 回答
2

2020 年 6 月的最新版本发生了一些变化,现在 --target 命令不考虑设备名称,需要放置目标模拟器设备的 UDID。

第 1 步:离子科尔多瓦运行 ios --list

虚拟设备:

[原生运行] iPhone 11 Pro Max 13.6 0C6BD29C-7507-XXXX-XXXX-2CE2XXXX [原生运行] iPhone 8 13.6 CEAE9A99-703F-XXXX-XXXX-10647A9XXXX

第2步:

仅复制特定设备的 UDID,例如“0C6BD29C-7507-XXXX-XXXX-2CE2XXXX”

第 3 步:

运行以下命令

离子科尔多瓦模拟 ios -l --external --target="0C6BD29C-7507-XXXX-XXXX-2CE2XXXX"

在版本上成功运行

离子:

离子 CLI:6.10.0 (/usr/local/lib/node_modules/@ionic/cli) 离子框架:@ionic/angular 5.0.7 @angular-devkit/build-angular:0.803.26 @angular-devkit/schematics: 8.3.26 @angular/cli:8.3.26 @ionic/angular-toolkit:2.2.0

科尔多瓦:

Cordova CLI:9.0.0 (cordova-lib@9.0.1) Cordova 平台:android 8.1.0,ios 5.1.1 Cordova 插件:cordova-plugin-ionic-keyboard 2.2.0,cordova-plugin-ionic-webview 5.0。 0,(和其他 22 个插件)

系统:

Android SDK 工具:26.1.1 (/Users/kushal/Library/Android/sdk) ios-deploy:1.10.0 ios-sim:8.0.2 NodeJS:v12.18.0 (/usr/local/bin/node) npm: 6.14.6 操作系统:macOS Catalina Xcode:Xcode 11.6 Build 版本 11E708

于 2020-07-20T10:15:59.663 回答