App de tareas con Matriz de Eisenhower. React Native + Expo + Firebase.
git clone https://github.com/Freddymhs/priorityBox
cd priorityBox
yarnnpm run android # Android
npm run ios # iOS SimulatorRequisitos: ADB, Java 17+, ANDROID_HOME apuntando al SDK, dispositivo Android con depuración USB activa.
# 1. Verificar que adb ve el dispositivo
adb devices
# 2. Compilar e instalar (DEBUG: necesita Metro corriendo en el PC)
npm run android
# o (RELEASE: app autónoma, NO necesita Metro ni PC tras instalar)
npm run android:releaseDebug (npm run android) |
Release (npm run android:release) |
|
|---|---|---|
| JS embebido en APK | ❌ se sirve desde Metro | ✅ embebido |
| Necesita Metro/PC tras instalar | ✅ sí | ❌ no |
| Tamaño / velocidad | mayor / lento | menor / rápido |
| Para qué sirve | desarrollar (hot reload, errores verbosos) | usar como app real |
expo run:android instala con el flag adb install --user 0, que MIUI bloquea con el error INSTALL_FAILED_USER_RESTRICTED. Dos pasos para evitarlo:
1. En el teléfono — Ajustes → Ajustes adicionales → Opciones de desarrollador:
- Activar "Instalar vía USB"
- Activar "Depuración USB (Ajustes de seguridad)" si existe
- Si "Instalar vía USB" no se deja activar, desactivar "Optimización MIUI" y reiniciar
2. Si MIUI sigue rechazando, usar adb install directo (sin --user 0):
# Compila el APK debug
npm run android # va a fallar al instalar — ignora el error, el APK ya está listo
# Instala manualmente (acepta el diálogo en el teléfono)
adb install -r android/app/build/outputs/apk/debug/app-debug.apk
# Arranca Metro y abre la app
npx expo start --dev-client --android# Si Metro sigue corriendo: solo guarda los archivos JS (hot reload).
# Si Metro está cerrado:
npx expo start --dev-client --androidPara cambios en código nativo (assets, app.json, dependencias nativas): re-ejecutar npm run android (o adb install -r con el workaround MIUI).
La build release puede fallar con OutOfMemoryError: Metaspace al analizar Kotlin de expo-modules-core. Si pasa, aumentar memoria en android/gradle.properties:
org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m
Y reiniciar el daemon: cd android && ./gradlew --stop. Este cambio NO se commitea (la carpeta android/ está en .gitignore por ser regenerable con expo prebuild). Si en el futuro se quiere persistir, agregar expo-build-properties como plugin en app.json.
Requisitos: Mac con Xcode + Apple ID gratuito (
# 1. Instalar
yarn
npm run setup:ios
# 2. Configurar signing en Xcode
open ios/priorityBox.xcworkspace
# → Xcode: Signing & Capabilities → Selecciona tu Apple ID
# 3. Compilar e instalar
npm run ios:device
# En iPhone: Ajustes → General → Gestión de dispositivos → Confiarnpm run ios:device # Modo Release (producción)Si ves pantalla blanca o la app no funciona:
# Instalar en modo Debug (verás errores en pantalla)
npm run ios:device:debug
# Ver logs del dispositivo en tiempo real
npm run ios:logsTroubleshooting:
- Logs en
ios-install.log - Si yarn se cuelga:
rm -rf node_modules && yarn - Pantalla blanca: Ejecuta
npm run ios:device:debugpara ver errores
Agrega google-services.json en la raíz (descárgalo desde Firebase Console).