相关文章推荐
0

More than 1 year has passed since last update.

posted at

updated at

Organization

React Nativeのrun-androidはデバイスIDの有無で実行されるタスクが違う

React Nativeのrun-androidコマンドはPCに接続したAndroid端末すべてにapkをインストールします。
一方で --deviceId でデバイスIDを指定すると特定のAndroid端末だけにapkをインストールできます。
ですがデバイスID指定ありとなしでは実行されるGradleタスクに違いがあったので調べた結果をまとめました。

バージョン
  • @react-native-community/cli-platform-android: 4.9.0
  • 実行されるタスクの調査方法

    react-native コマンドの --verbose オプションを指定すると実行されるコマンドが分かるのでこれで確認します。

    デバイスIDを指定しない場合
    $ react-native run-android --verbose
    info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
    Jetifier found 1041 file(s) to forward-jetify. Using 8 workers...
    info JS server already running.
    info Installing the app...
    debug Running command "cd android && gradlew.bat app:installDebug -PreactNativeDevServerPort=8081"
    

    app:installDebugタスクが実行されています。これはアプリをビルドして全Android端末にapkをインストールします。

    デバイスIDを指定する場合
    $ react-native run-android --verbose --deviceId xxxxx
    info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
    Jetifier found 1391 file(s) to forward-jetify. Using 8 workers...
    info JS server already running.
    info Building the app...
    debug Running command "gradlew.bat build -x lint"
    

    buildタスクが実行されています。これはアプリのビルド、テスト、Javadocのビルドなどが実行されます。
    更に--tasksオプションでタスクを指定しても反映されないのでビルド以外のタスクを除外できません。

    apkビルドだけで特定の端末にインストールしたい

    現状はオプションなどで変更できないので以下のどちらかしかなさそうです。

  • インストールしたくないAndroid端末の電源を切るかUSBケーブルを抜く
  • node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/index.jsbuildApk内の"build""assembleDebug"に書き換える

    以下のPull Requestが取り込まれるとビルドコマンドが統一されてassembleDebugタスクに置き換わるので将来的には解消しそうです。

  • refactor: unify APK building and installing process #1055
  • Register as a new user and use Qiita more conveniently

    1. You get articles that match your needs
    2. You can efficiently read back useful information
    What you can do with signing up
    0
     
    推荐文章