はじめに

Cordova でエミュレータの起動がうまくいかないときに見るポイント(やること)をまとめた。
※自分がハマった箇所の解決方法しか書いてない

TL;DR

  • iOS
    • npm i -g ios-simios-sim をインストール
    • --buildFlag='-UseModernBuildSystem=0' をつける
  • Android

目次

  1. はじめに
  2. TL;DR
  3. 環境・条件
  4. 詳細
    1. iOS
      1. ios-sim インストール
      2. buildFlag=’-UseModernBuildSystem=0’ でビルド・デプロイ
    2. Android
      1. platforms/android/cordova/lib/emulator.js を修正する
  5. まとめ
  6. 参考文献

環境・条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.5
BuildVersion: 18F132

$ npm --version
6.10.3

$ node --version
v12.7.0

$ cordova --version
8.1.2 (cordova-lib@8.1.1)

$ cordova platform
Installed platforms:
android 7.1.4
ios 4.5.5

$ cordova run --list
Available android virtual devices:
Pixel_2_API_26
Available ios virtual devices:
...
iPhone-XR, 12.2

詳細

iOS

ios-sim インストール

ios-sim を入れてなければインストールする。

1
$ npm install ios-sim -g

mac なら brew install ios-sim でも OK。

buildFlag=’-UseModernBuildSystem=0’ でビルド・デプロイ

(これは環境によると思うけど)cordova build, cordova run のときに --buildFlag='-UseModernBuildSystem=0' をつける。

1
2
$ cordova build ios --buildFlag='-UseModernBuildSystem=0'
$ cordova run ios --buildFlag="-UseModernBuildSystem=0"

Android

platforms/android/cordova/lib/emulator.js を修正する

エミュレータは起動するけどアプリがデプロイできないときは cordova run android した結果を確認する。

1
2
3
4
5
$ cordova run android
Android Studio project detected
...
Failed to execute shell command "getprop,dev.bootcomplete"" on device: Error: adb: Command failed with exit code 1 Error output:
error: device still authorizing

error: device still authorizing で失敗している場合は、Device still authorizing issue · Issue #608 · apache/cordova-android の問題と思われる。

platforms/android/cordova/lib/emulator.js の L348 あたりを修正すれば OK。

1
2
3
-            (error.message.indexOf('device still connecting') > -1)) {
+ (error.message.indexOf('device still connecting') > -1) ||
+ (error.message.indexOf('device still authorizing') > -1)) {

まとめ

  • iOS
    • npm i -g ios-simios-sim をインストール
    • --buildFlag='-UseModernBuildSystem=0' をつける
  • Android

参考文献

関連記事