chore: fix install-android
This commit is contained in:
parent
882e6105f4
commit
91c374756b
3 changed files with 131 additions and 2 deletions
99
docs/android-install.md
Normal file
99
docs/android-install.md
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
# Android App Installation Guide
|
||||||
|
|
||||||
|
This guide explains how to install the Android app on an emulator or physical device.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Android emulator or physical device connected via ADB
|
||||||
|
- Java installed (for bundletool)
|
||||||
|
- ADB installed and configured
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Using the Yarn Script
|
||||||
|
|
||||||
|
The easiest way to install the app is to use the provided yarn script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Set the device ID (emulator or physical device)
|
||||||
|
export DEVICE=emulator-5554
|
||||||
|
|
||||||
|
# Run the installation script
|
||||||
|
yarn install:android
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual Installation
|
||||||
|
|
||||||
|
If you need to install the app manually, follow these steps:
|
||||||
|
|
||||||
|
1. Navigate to the bundle release directory:
|
||||||
|
```bash
|
||||||
|
cd android/app/build/outputs/bundle/release
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Build APKs with signing:
|
||||||
|
```bash
|
||||||
|
java -jar /opt/bundletool-all-1.17.1.jar build-apks \
|
||||||
|
--mode universal \
|
||||||
|
--bundle ./app-release.aab \
|
||||||
|
--output ./app.apks \
|
||||||
|
--ks /home/jo/lab/alerte-secours/as-app/android/app/debug.keystore \
|
||||||
|
--ks-pass pass:android \
|
||||||
|
--ks-key-alias androiddebugkey \
|
||||||
|
--key-pass pass:android
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Convert .apks to .zip and extract:
|
||||||
|
```bash
|
||||||
|
mv app.apks app.zip
|
||||||
|
unzip -o app.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Install the APK on the device:
|
||||||
|
```bash
|
||||||
|
adb -s $DEVICE install universal.apk
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Finding Available Devices
|
||||||
|
|
||||||
|
To list all available devices:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
adb devices
|
||||||
|
```
|
||||||
|
|
||||||
|
Example output:
|
||||||
|
```
|
||||||
|
List of devices attached
|
||||||
|
emulator-5554 device
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
1. **No devices found**: Make sure your emulator is running or your physical device is connected and has USB debugging enabled.
|
||||||
|
|
||||||
|
2. **Installation fails**: Check if the app is already installed. You might need to uninstall it first:
|
||||||
|
```bash
|
||||||
|
adb -s $DEVICE uninstall com.alertesecours
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Signing issues**: If you encounter signing problems, make sure the keystore path is correct and the keystore passwords match.
|
||||||
|
|
||||||
|
## Custom Installation Script
|
||||||
|
|
||||||
|
A custom installation script (`install-android.sh`) has been created to simplify the installation process. This script:
|
||||||
|
|
||||||
|
1. Checks if the DEVICE environment variable is set
|
||||||
|
2. Navigates to the bundle release directory
|
||||||
|
3. Builds APKs with signing
|
||||||
|
4. Converts .apks to .zip and extracts it
|
||||||
|
5. Installs the APK on the device
|
||||||
|
|
||||||
|
You can run this script directly:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export DEVICE=emulator-5554
|
||||||
|
./install-android.sh
|
||||||
|
```
|
30
install-android.sh
Executable file
30
install-android.sh
Executable file
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if DEVICE environment variable is set
|
||||||
|
if [ -z "$DEVICE" ]; then
|
||||||
|
echo "Error: DEVICE environment variable is not set."
|
||||||
|
echo "Usage: DEVICE=emulator-5554 ./install-android.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Navigate to the bundle release directory
|
||||||
|
cd android/app/build/outputs/bundle/release
|
||||||
|
|
||||||
|
# Build APKs with signing
|
||||||
|
java -jar /opt/bundletool-all-1.17.1.jar build-apks \
|
||||||
|
--mode universal \
|
||||||
|
--bundle ./app-release.aab \
|
||||||
|
--output ./app.apks \
|
||||||
|
--ks $HOME/lab/alerte-secours/as-app/android/app/debug.keystore \
|
||||||
|
--ks-pass pass:android \
|
||||||
|
--ks-key-alias androiddebugkey \
|
||||||
|
--key-pass pass:android
|
||||||
|
|
||||||
|
# Convert .apks to .zip and extract
|
||||||
|
mv app.apks app.zip
|
||||||
|
unzip -o app.zip
|
||||||
|
|
||||||
|
# Install the APK on the device
|
||||||
|
adb -s $DEVICE install universal.apk
|
||||||
|
|
||||||
|
echo "Installation complete!"
|
|
@ -36,7 +36,7 @@
|
||||||
"e2e:start": "adb -s emulator-5554 shell am start -n com.alertesecours/.MainActivity",
|
"e2e:start": "adb -s emulator-5554 shell am start -n com.alertesecours/.MainActivity",
|
||||||
"e2e:test": "detox test --configuration android.emu.debug",
|
"e2e:test": "detox test --configuration android.emu.debug",
|
||||||
"e2e:run": "yarn start & yarn e2e:build && yarn e2e:deploy && yarn e2e:test",
|
"e2e:run": "yarn start & yarn e2e:build && yarn e2e:deploy && yarn e2e:test",
|
||||||
"install:android": "cd android/app/build/outputs/bundle/release && java -jar /opt/bundletool-all-1.17.1.jar build-apks --mode universal --bundle ./app-release.aab --output ./app.apks && mv app.apks app.zip && unzip -o app.zip && adb -s $DEVICE install universal.apk",
|
"install:android": "./install-android.sh",
|
||||||
"log:android": "adb -s $DEVICE logcat | grep -E 'ReactNativeJS: '",
|
"log:android": "adb -s $DEVICE logcat | grep -E 'ReactNativeJS: '",
|
||||||
"log:ios:simulator": "xcrun simctl spawn booted log stream --level debug --predicate 'subsystem contains \"com.facebook.react.log\" and processImagePath contains \"AlerteSecours\"'",
|
"log:ios:simulator": "xcrun simctl spawn booted log stream --level debug --predicate 'subsystem contains \"com.facebook.react.log\" and processImagePath contains \"AlerteSecours\"'",
|
||||||
"log:ios": "idevicesyslog | grep -i 'AlerteSecours\\|ReactNative'",
|
"log:ios": "idevicesyslog | grep -i 'AlerteSecours\\|ReactNative'",
|
||||||
|
@ -276,4 +276,4 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packageManager": "yarn@4.5.3"
|
"packageManager": "yarn@4.5.3"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue