Browse Source

Improved install script and instructions

Arnaud Vergnet 1 year ago
parent
commit
eb9bf26baa
2 changed files with 56 additions and 65 deletions
  1. 10
    56
      INSTALL.md
  2. 46
    9
      install.sh

+ 10
- 56
INSTALL.md View File

@@ -4,7 +4,7 @@
4 4
 
5 5
 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)
6 6
 
7
-Ce guide à été testé sur Linux (Ubuntu 18.04).
7
+Ce guide a été testé sur Linux (Ubuntu 18.04).
8 8
 Si vous utilisez Windows, débrouillez-vous ou installez Linux j'ai la flemme de tester.
9 9
 
10 10
 ## Table des matières
@@ -64,26 +64,24 @@ Pour revenir sur la branche principale, effectuez la commande
64 64
 git checkout master
65 65
 ````
66 66
 
67
-## Téléchargement des dépendances
67
+## Installation du projet
68 68
 
69
-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 : 
69
+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 : 
70 70
 ````shell script
71
-npm install
71
+./install.sh [mode]
72
+````
73
+En remplaçant `[mode]` par le mode d'installation de votre choix. Les valeurs valides sont :
74
+````
75
+  --android     Installation juste pour Android
76
+  --ios         Installation juste pour iOS
77
+  --all         Installation pour Android et iOS
72 78
 ````
73
-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).
74 79
 
75 80
 En cas de problème d'installation (notamment lors du changement de branche), lancez la commande suivante pour tout réinstaller :
76 81
 ````shell script
77 82
 ./clear-node-cache.sh 
78 83
 ````
79 84
 
80
-### Instructions pour iOS
81
-
82
-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 :
83
-```shell script
84
-cd ios && pod install
85
-```
86
-
87 85
 ## Lancement de l'appli
88 86
 
89 87
 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
99 97
 
100 98
 **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.
101 99
 
102
-
103 100
 ### Android
104 101
 
105
-**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 :
106
-````shell script
107
-cd android/app && keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
108
-````
109
-
110
-Ensuite, vous aurez besoin de créer un autre fichier dans le dossier `android/`, appelé gradle.properties avec le contenu suivant :
111
-
112
-<details>
113
-<summary>gradle.properties</summary>
114
-
115
-````properties
116
-# Project-wide Gradle settings.
117
-
118
-# IDE (e.g. Android Studio) users:
119
-# Gradle settings configured through the IDE *will override*
120
-# any settings specified in this file.
121
-
122
-# For more details on how to configure your build environment visit
123
-# http://www.gradle.org/docs/current/userguide/build_environment.html
124
-
125
-# Specifies the JVM arguments used for the daemon process.
126
-# The setting is particularly useful for tweaking memory settings.
127
-# Default value: -Xmx10248m -XX:MaxPermSize=256m
128
-# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
129
-
130
-# When configured, Gradle will run in incubating parallel mode.
131
-# This option should only be used with decoupled projects. More details, visit
132
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
133
-# org.gradle.parallel=true
134
-
135
-# AndroidX package structure to make it clearer which packages are bundled with the
136
-# Android operating system, and which are packaged with your app's APK
137
-# https://developer.android.com/topic/libraries/support-library/androidx-rn
138
-android.useAndroidX=true
139
-# Automatically convert third-party libraries to use AndroidX
140
-android.enableJetifier=true
141
-# Version of flipper SDK to use with React Native
142
-FLIPPER_VERSION=0.33.1
143
-````
144
-</details>
145
-
146
-Ce fichier n'est pas synchronisé sur git car il peut contenir des secrets relatifs à la clé de signature du build de release.
147
-
148 102
 Dans la deuxième console, lancez la commande suivante :
149 103
 ````shell script
150 104
 npx react-native run-android

+ 46
- 9
install.sh View File

@@ -1,12 +1,44 @@
1 1
 #!/bin/bash
2 2
 
3
-echo "Creating debug android keystore..."
4
-cd android/app && keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
5
-echo -e "Done\n"
3
+base_dir=$(pwd)
6 4
 
7
-cd ..
8
-echo "Creating gradle.properties file..."
9
-echo "# Project-wide Gradle settings.
5
+
6
+if [[ $1 == "--android" ]]
7
+then
8
+  echo "Installing for Android only"
9
+  node_install
10
+  android_install
11
+elif [[ $1 == "--ios" ]]
12
+then
13
+  echo "Installing for iOS only"
14
+  node_install
15
+  ios_install
16
+elif [[ $1 == "--all" ]]
17
+then
18
+  echo "Installing for Android and iOS"
19
+  node_install
20
+  android_install
21
+  ios_install
22
+else
23
+  echo "Usage: ./install.sh [mode]"
24
+  echo "    [mode]: --android     Installs only Android dependencies"
25
+  echo "    [mode]: --ios         Installs only iOS dependencies"
26
+  echo "    [mode]: --all         Installs Android and iOS dependencies"
27
+fi
28
+exit
29
+
30
+function ios_install {
31
+  cd "$base_dir"/ios && pod install
32
+}
33
+
34
+function android_install {
35
+  echo "Creating debug android keystore..."
36
+  cd "$base_dir"/android/app && keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
37
+  echo -e "Done\n"
38
+
39
+  cd ..
40
+  echo "Creating gradle.properties file..."
41
+  echo "# Project-wide Gradle settings.
10 42
 
11 43
 # IDE (e.g. Android Studio) users:
12 44
 # Gradle settings configured through the IDE *will override*
@@ -36,8 +68,13 @@ FLIPPER_VERSION=0.37.0
36 68
 # This file is not included in git because it may contain secrets concerning the release key.
37 69
 # To get those secrets, please contact the author at vergnet@etud.insa-toulouse.fr
38 70
 " > gradle.properties
39
-echo -e "Done\n"
71
+  echo -e "Done\n"
72
+}
73
+
74
+function node_install {
75
+  cd "$base_dir" || exit 1
76
+  ./clear-node-cache.sh
77
+}
78
+
40 79
 
41
-cd ..
42
-./clear-node-cache.sh
43 80
 

Loading…
Cancel
Save