Improved install script and instructions
This commit is contained in:
parent
a90dcf4460
commit
eb9bf26baa
2 changed files with 56 additions and 65 deletions
66
INSTALL.md
66
INSTALL.md
|
@ -4,7 +4,7 @@
|
|||
|
||||
Tout est expliqué dans ce guide, si vous avez un problème ou une question, merci de me contacter par mail : [app@amicale-insat.fr](mailto:app@amicale-insat.fr)
|
||||
|
||||
Ce guide à été testé sur Linux (Ubuntu 18.04).
|
||||
Ce guide a été testé sur Linux (Ubuntu 18.04).
|
||||
Si vous utilisez Windows, débrouillez-vous ou installez Linux j'ai la flemme de tester.
|
||||
|
||||
## Table des matières
|
||||
|
@ -64,26 +64,24 @@ Pour revenir sur la branche principale, effectuez la commande
|
|||
git checkout master
|
||||
````
|
||||
|
||||
## Téléchargement des dépendances
|
||||
## Installation du projet
|
||||
|
||||
Une fois le dépôt sur votre machine et git sur la branche de votre choix, ouvrez le terminal dans le dossier du dépôt cloné et tapez :
|
||||
Une fois le dépôt sur votre machine et git sur la branche de votre choix, ouvrez le terminal dans le dossier du dépôt cloné et lancez le script d'installation avec la commande suivante :
|
||||
````shell script
|
||||
npm install
|
||||
./install.sh [mode]
|
||||
````
|
||||
En remplaçant `[mode]` par le mode d'installation de votre choix. Les valeurs valides sont :
|
||||
````
|
||||
--android Installation juste pour Android
|
||||
--ios Installation juste pour iOS
|
||||
--all Installation pour Android et iOS
|
||||
````
|
||||
Ceci installera toutes les dépendances listées dans le fichier _package.json_. Cette opération peut prendre quelques minutes et utilisera beaucoup d'espace disque (plus de 300Mo).
|
||||
|
||||
En cas de problème d'installation (notamment lors du changement de branche), lancez la commande suivante pour tout réinstaller :
|
||||
````shell script
|
||||
./clear-node-cache.sh
|
||||
````
|
||||
|
||||
### Instructions pour iOS
|
||||
|
||||
Pour iOS, en plus de la commande précédente, il faut aussi installer les dépendances iOS. Pour cela, allez dans le dossier `ios` et installez les pods grâce à la commande suivante :
|
||||
```shell script
|
||||
cd ios && pod install
|
||||
```
|
||||
|
||||
## Lancement de l'appli
|
||||
|
||||
Il est conseillé d'utiliser un logiciel comme **WebStorm** (logiciel pro gratuit pour les étudiants) pour éditer l'application car ce logiciel est compatible avec les technologies utilisées.
|
||||
|
@ -99,52 +97,8 @@ npx react-native start
|
|||
|
||||
**Ne stoppez pas le Metro Bundler dans la console à chaque changement !** Toutes les modifications sont appliquées automatiquement, pas besoin de stopper et de redémarrer pour des petits changements ! Il est seulement nécessaire de redémarrer le Metro Bundler quand vous changez des librairies ou des fichiers.
|
||||
|
||||
|
||||
### Android
|
||||
|
||||
**PRÉREQUIS** : Il est nécessaire de générer un fichier keystore.debug dans le dossier `android/app` pour qu'android puisse détecter que l'application est une version de debug. Pour cela, lancez la commande suivante :
|
||||
````shell script
|
||||
cd android/app && keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
|
||||
````
|
||||
|
||||
Ensuite, vous aurez besoin de créer un autre fichier dans le dossier `android/`, appelé gradle.properties avec le contenu suivant :
|
||||
|
||||
<details>
|
||||
<summary>gradle.properties</summary>
|
||||
|
||||
````properties
|
||||
# Project-wide Gradle settings.
|
||||
|
||||
# IDE (e.g. Android Studio) users:
|
||||
# Gradle settings configured through the IDE *will override*
|
||||
# any settings specified in this file.
|
||||
|
||||
# For more details on how to configure your build environment visit
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
# Default value: -Xmx10248m -XX:MaxPermSize=256m
|
||||
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
# org.gradle.parallel=true
|
||||
|
||||
# AndroidX package structure to make it clearer which packages are bundled with the
|
||||
# Android operating system, and which are packaged with your app's APK
|
||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||
android.useAndroidX=true
|
||||
# Automatically convert third-party libraries to use AndroidX
|
||||
android.enableJetifier=true
|
||||
# Version of flipper SDK to use with React Native
|
||||
FLIPPER_VERSION=0.33.1
|
||||
````
|
||||
</details>
|
||||
|
||||
Ce fichier n'est pas synchronisé sur git car il peut contenir des secrets relatifs à la clé de signature du build de release.
|
||||
|
||||
Dans la deuxième console, lancez la commande suivante :
|
||||
````shell script
|
||||
npx react-native run-android
|
||||
|
|
55
install.sh
55
install.sh
|
@ -1,12 +1,44 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "Creating debug android keystore..."
|
||||
cd android/app && keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
|
||||
echo -e "Done\n"
|
||||
base_dir=$(pwd)
|
||||
|
||||
cd ..
|
||||
echo "Creating gradle.properties file..."
|
||||
echo "# Project-wide Gradle settings.
|
||||
|
||||
if [[ $1 == "--android" ]]
|
||||
then
|
||||
echo "Installing for Android only"
|
||||
node_install
|
||||
android_install
|
||||
elif [[ $1 == "--ios" ]]
|
||||
then
|
||||
echo "Installing for iOS only"
|
||||
node_install
|
||||
ios_install
|
||||
elif [[ $1 == "--all" ]]
|
||||
then
|
||||
echo "Installing for Android and iOS"
|
||||
node_install
|
||||
android_install
|
||||
ios_install
|
||||
else
|
||||
echo "Usage: ./install.sh [mode]"
|
||||
echo " [mode]: --android Installs only Android dependencies"
|
||||
echo " [mode]: --ios Installs only iOS dependencies"
|
||||
echo " [mode]: --all Installs Android and iOS dependencies"
|
||||
fi
|
||||
exit
|
||||
|
||||
function ios_install {
|
||||
cd "$base_dir"/ios && pod install
|
||||
}
|
||||
|
||||
function android_install {
|
||||
echo "Creating debug android keystore..."
|
||||
cd "$base_dir"/android/app && keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
|
||||
echo -e "Done\n"
|
||||
|
||||
cd ..
|
||||
echo "Creating gradle.properties file..."
|
||||
echo "# Project-wide Gradle settings.
|
||||
|
||||
# IDE (e.g. Android Studio) users:
|
||||
# Gradle settings configured through the IDE *will override*
|
||||
|
@ -36,8 +68,13 @@ FLIPPER_VERSION=0.37.0
|
|||
# This file is not included in git because it may contain secrets concerning the release key.
|
||||
# To get those secrets, please contact the author at vergnet@etud.insa-toulouse.fr
|
||||
" > gradle.properties
|
||||
echo -e "Done\n"
|
||||
echo -e "Done\n"
|
||||
}
|
||||
|
||||
function node_install {
|
||||
cd "$base_dir" || exit 1
|
||||
./clear-node-cache.sh
|
||||
}
|
||||
|
||||
|
||||
cd ..
|
||||
./clear-node-cache.sh
|
||||
|
||||
|
|
Loading…
Reference in a new issue