NativeScript のデバッグ方法
はじめに
NativeScript のデバッグ方法について整理した。
TL;DR
- Chrome や NativeScript Inspector を利用したデバッグが可能
- ブレークポイントの設定、コンソールでのログ確認、要素の変更など可能
- Chrome DevTools Debugging
- iOS:
tns debug ios
- Android:
tns debug android
- VSCode の拡張機能もある(未確認)
目次
環境・条件
1 | ProductName: Mac OS X |
- iPhone 11 Pro: iOS 13.3
- Android HUAWEI nova lite 2: Android 9 (ビルド 9.1.0.160)
詳細
Debugging に詳細が書かれている。
iOS
tns debug ios
で、Chrome や NativeScript Inspector (Safari のウェブインスペクタ相当)を利用したデバッグが可能。
以降はエミュレータ前提で記述(--emulator
オプションを利用)。
Chrome でのデバッグ
tns debug ios --emulator
を実行。
しばらく待つと chrome-devtools://devtools/xxxx
が表示されるのでコピー。
1 | $ tns debug ios --emulator |
Chrome のアドレスバーに貼り付けて移動。あとはいつも通りに Sources タブでブレークポイントを設定したり、Elements タブで要素を変更したりできる。
NativeScript Inspector でのデバッグ
tns debug ios --emulator --inspector
を実行。
しばらく待つと自動で NativeScript Inspector が起動する。
1 | $ tns debug ios --emulator --inspector |
あとはいつも通りに Elements, Debugger, Console などのタブでデバッグ。
起動直後にブレーク
--debug-brk
オプションを利用
1 | $ tns debug ios --emulator --debug-brk |
実機デバッグ
※自分の環境では、Chrome でも NativeScript Inspector でもソースコードや各要素、ログが表示されなかったので、手順誤りや設定漏れがあるかも。
実機を接続し tns device
で確認。
1 | $ tns device |
--device <device id> --inspector
を指定。その他はエミュレータ同様、--debug-brk
など必要なオプション指定して実行。
※NativeScript-Vue を使っている場合 --bundle
オプションも必要かも
1 | $ tns debug ios --bundle --device 01234567-89ABCDEF01234567 --inspector |
シミュレータ未起動で実機接続している場合は --device <device id>
は無くても良い。
1 | $ tns debug --bundle --inspector |
iOS Runtime のデバッグ
ランタイムエラーが発生するケースで、より詳細なデバッグ情報が必要な場合の話。
ios-runtime
ライブラリを ビルド/デバッグ することができる、詳しくは下記を参照。
- Debugging the iOS Runtime within your app’s XCode project - NativeScript Docs
- ios-runtime/README.md at master · NativeScript/ios-runtime
NativeScript debugger was not able to get inspector socket となる場合
以下のエラーが表示される場合、環境によっては --timeout 90
を追加すると改善するかもしれない。
参考: Error: NativeScript debugger was not able to get inspector socket port. · Issue #188 · NativeScript/nativescript-vscode-extension
1 | NativeScript debugger was not able to get inspector socket port on device 01234567-89ABCDEF01234567 for application com.example.your.app. |
Android
tns debug android
で、iOS 同様に Chrome を利用したデバッグが可能。
コマンドや使い方は、基本的に iOS と同じため省略。
1 | # エミュレータ |
VSCode
VSCode の拡張機能を使ったデバッグも可能な模様(未確認)
参考: NativeScript Extension for Visual Studio Code - NativeScript Docs
まとめ
- Chrome や NativeScript Inspector を利用したデバッグが可能
- ブレークポイントの設定、コンソールでのログ確認、要素の変更など可能
- Chrome DevTools Debugging
- iOS:
tns debug ios
- Android:
tns debug android
- VSCode の拡張機能もある(未確認)
参考文献
- Debugging - NativeScript Docs
- Chrome DevTools Debugging - NativeScript Docs
- tns debug - NativeScript Docs
- tns debug ios - NativeScript Docs
- tns debug android - NativeScript Docs
関連記事
- NativeScript, JsBarcode でバーコードを 生成/描画
- NativeScript でデバイスの輝度(明るさ)を制御する
- NativeScript-Vue でネイテイブアプリの開発(チュートリアル + α)
- NativeScript で生体認証(FaceID, TouchID, Android 指紋認証)
- NativeScript-Vue で QRコードの読取り
- NativeScript で入力範囲外タップでキーボードを非表示にする
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア