web-dev-qa-db-ja.com

CordovaからiOSエミュレーターを選択する方法/ ionicコマンドライン

ionicコマンドラインをエミュレートする(私はそれがcordova phoengapと同じだと仮定しています))デバイスを選択するにはどうすればよいですか-iPadまたはiPhoneの背の高い画面。 。

56
MonkeyBonkey

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

特定のOSでエミュレータを起動するには、次を使用します。

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
106
John P
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"

45
RipTheJacker

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

OSのバージョン(11.3など)は、ダウンロードしたイメージとXCodeのバージョンによって変わる場合があります。したがって、このリストのデバイスが機能しない場合は、コマンドを実行して独自のリストを取得してください。

12
Hugo H

この答えが私にとってうまくいかない理由はわかりません。しかし、それは次のことをしています:

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"
2
Daniel S.

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

リストの下で正しいシミュレータを実行している限り、問題ありません。

ionic emulate ios --target = "iPhone-6s-Plus、10.2"

2
Rodrigo Rubio