Sigue estos pasos para instalar el proyecto en tu máquina local:
yarn installnpx expo installNota: Solo utilizar "npm install" para paquetes específicos de documentaciones.
wsl --installLuego seleccionamos "Ubuntu"
sudo apt update
sudo apt install openjdk-17-jdk -yEn caso de que tengamos mas de una versión de JAVA instalados seleccionamos la instalada
sudo update-alternatives --config javaAñadimos las variables de entorno en nuesto ~/.bashrc
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrcAplicamos los cambios
source ~/.bashrcEn este link podrás encontrar los pasos que debes seguir para una correcta instalación
Nuestas variables de entorno deben quedar algo como esto en nuestro archivo .bashrc
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export ANDROID_SDK_ROOT=$HOME/android/sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-toolsUna ves culminado la instalación creamos el archivo local.properties
sdk.dir=/yout/own/path.[!NOTE] NOTA: la variable "sdk.dir" debe tener acceso al path del SDK que se encuentra dentro de nuestro sub-sistema y no del que tenemos en windows.
Por último aceptamos las licencias con el comando
sdkmanager --licensesLuego podemos proceder a realizar las compilación local de nuestro proyecto hecho en expo con el siguiente comando
Debemos tener intalado eas-cli, en caso de que no ejecutar el comando npm install -g eas-cli expo.dev
eas build --platform android --localPara evitar crasheos en la compilación incrementar el gradle daemon memory
defect
org.gradle.jvmargs=-Xmx2024m -XX:MaxMetaspaceSize=512mminimo recomendado
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1geas build --platform android --local --clear-cache --output ./build/dev_artifacts"production-android": {
"android": {
"buildType": "app-bundle",
"resourceClass": "large",
"autoIncrement": "version"
}
},sudo keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****Remplace el texto "// Top-level build file where you can add configuration options common to all sub-projects/modules." por la configuración del release
android {
signingConfigs {
// ...
release {
// if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
// storeFile file(MYAPP_UPLOAD_STORE_FILE)
// storePassword MYAPP_UPLOAD_STORE_PASSWORD
// keyAlias MYAPP_UPLOAD_KEY_ALIAS
// keyPassword MYAPP_UPLOAD_KEY_PASSWORD
// }
}
}
buildTypes {
// ...
release {
// signingConfig signingConfigs.debug
signingConfig signingConfigs.release
minifyEnabled false
// ...
}
}
}expo.dev ---> local-app-production guide
eas build -p android --local --profile production-android --clear-cache --output ./build_artifacts
Añadir estas líneas en nuestro pre-build
class MainActivity : ReactActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Set the theme to AppTheme BEFORE onCreate to support
// coloring the background, status bar, and navigation bar.
// This is required for expo-splash-screen.
FirebaseApp.initializeApp(this); // añadir esta línea
setTheme(R.style.AppTheme);
super.onCreate(null)
}Añadir en Android/app/build.gradle
Ver en documentación oficial
dependencies {
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
implementation "com.google.firebase:firebase-messaging"
implementation platform('com.google.firebase:firebase-bom:33.4.0')
implementation 'com.google.firebase:firebase-analytics' //buildscript somethings
repositories {
google()
mavenCentral()
}
dependencies {
classpath('com.google.gms:google-services:4.4.2') // add this line
classpath('com.android.tools.build:gradle')
classpath('com.facebook.react:react-native-gradle-plugin')
classpath('org.jetbrains.kotlin:kotlin-gradle-plugin')
}
plugins { //
id 'com.google.gms.google-services' version '4.4.2' apply false // add this line's
} //
}- AAPT: error: file failed to compile.
Un archivo jpg habia sido renombrado a formato png, no estaba siendo utilizado por el proyecto, se eliminó y se volvió a realizar el build del proyecto.
- Execution failed for task ':app:createBundleReleaseJsAndAssets'.
Este error se debe a un error de syntaxis(Javascript/Typescript), a pesar de que la aplicación funciona es posible que el error se produzca en el momento de la compilación(build).
- Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed) PRODUCTION
Este error puede ocurrir por que hay archivos muy pesados para procesar en el proyecto, por que quedaron procesos en cache o por que se queda sin memoria(Gradle memory config ),
posible solución es ejecutar wsl --shutdow para detener los procesos acumulados de nuestro wsl y verificar que la configuración "resourceClass": "large" se encuentre en eas.json