TuCOP Wallet es una aplicación móvil React Native que proporciona servicios de billetera digital con funcionalidades avanzadas de gestión de versiones y actualizaciones automáticas.
- Billetera Digital Completa: Gestión de transacciones y pagos
- Sistema de Actualizaciones Inteligente: Verificación automática desde backend propio
- CI/CD Automatizado: Despliegue automático a Play Store y TestFlight
- Soporte Multi-Red: Mainnet y Alfajores (Testnet)
- Arquitectura Moderna: React Native con TypeScript
- Frontend: React Native + TypeScript
- Backend: Node.js + Express (Railway)
- CI/CD: GitHub Actions + Fastlane
- Configuración: Statsig Dynamic Config
- Stores: Google Play Store + Apple TestFlight
- Infraestructura: Railway Cloud Platform
- Node.js: v20.17.0 (versión específica requerida)
- NVM: Para gestión de versiones de Node.js
- JDK: v17
- Yarn: v1.22 o superior
- React Native CLI: Última versión
- Android Studio: Para desarrollo Android
- Xcode: Para desarrollo iOS (solo macOS)
Primero, instala NVM (Node Version Manager) si no lo tienes:
# Para macOS/Linux
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Reinicia tu terminal o ejecuta:
source ~/.bashrc # o ~/.zshrc si usas zshLuego, instala y configura Node.js v20.17.0:
# Instalar Node.js v20.17.0
nvm install 20.17.0
# Establecer como versión por defecto
nvm alias default 20.17.0
# Verificar la versión instalada
node --version # Debe mostrar v20.17.0git clone https://github.com/TuCopFinance/TuCopWallet.git
cd TuCopWalletyarn install# Renombrar archivo de configuración
cp secrets.json.template secrets.json
# Editar secrets.json con tus configuracionesAntes de ejecutar la aplicación, necesitas iniciar el emulador correspondiente.
Opción 1: Inicio Automático
npx react-native run-ios
# Abre automáticamente el simulador y ejecuta la appOpción 2: Abrir Simulador Primero
open -a SimulatorOpción 3: Especificar un Dispositivo
# Listar dispositivos disponibles
xcrun simctl list devices
# Iniciar con dispositivo específico
npx react-native run-ios --simulator="iPhone 15 Pro"Opción 4: Usando xcrun Directamente
# Iniciar simulador específico
xcrun simctl boot "iPhone 15 Pro"
# Abrir aplicación Simulator
open -a Simulator
# Ejecutar la app
npx react-native run-iosOpción A: Desde Android Studio
- Abre Android Studio
- Ve a
Tools → Device Manager - Selecciona un dispositivo y haz clic en el botón
▶️ (Play)
Opción B: Desde Línea de Comandos
# Listar emuladores disponibles
emulator -list-avds
# Iniciar emulador específico
emulator -avd <nombre_del_dispositivo>
# Ejemplo:
emulator -avd Pixel_API_29_AOSP_x86_64Nota: Asegúrate de que el emulador esté completamente iniciado antes de ejecutar la aplicación.
# Desarrollo (Alfajores testnet)
yarn dev:android
# Mainnet
yarn dev:android:mainnet
# Windows
yarn win:dev:android# Desarrollo (Alfajores testnet)
yarn dev:ios
# Mainnet
yarn dev:ios:mainnetyarn dev:android # Ejecutar en Android
yarn dev:ios # Ejecutar en iOS
yarn win:dev:android # Ejecutar en Android (Windows)yarn test # Ejecutar tests
yarn lint # Verificar linting
yarn build:ts # Compilar TypeScriptyarn version --patch # Incrementar versión patch (1.0.0 → 1.0.1)
yarn version --minor # Incrementar versión minor (1.0.0 → 1.1.0)
yarn version --major # Incrementar versión major (1.0.0 → 2.0.0)
yarn pre-deploy # Preparar para desplieguesrc/
├── components/ # Componentes reutilizables
├── screens/ # Pantallas de la aplicación
├── navigation/ # Configuración de navegación
├── utils/ # Utilidades y helpers
│ ├── appUpdateChecker.ts # Verificación de actualizaciones
│ └── versionCheck.ts # Comparación de versiones
├── hooks/ # Custom hooks
│ └── useAppUpdateChecker.ts # Hook de actualizaciones
└── types/ # Definiciones de tipos TypeScript
railway-backend/
├── src/
│ ├── routes/ # Endpoints de la API
│ ├── services/ # Lógica de negocio
│ └── utils/ # Utilidades del backend
├── package.json # Dependencias del backend
└── railway.json # Configuración de Railway
.github/
└── workflows/
└── auto-build.yml # Pipeline de CI/CD automatizado
La aplicación verifica automáticamente nuevas versiones cada 24 horas usando nuestro backend en Railway:
- Endpoint:
https://tucopwallet-production.up.railway.app/api/app-version - Fallback: Statsig Dynamic Config
- Persistencia: Actualizaciones descartadas se recuerdan
- Forzada: Bloquea la app hasta actualizar
- Opcional: Permite continuar usando la app
- Silenciosa: Solo notifica disponibilidad
# 1. Incrementar versión
yarn version --patch
# 2. Push (activa CI/CD automáticamente)
git push origin main --follow-tags- GitHub Actions detecta el cambio de versión
- Compila para Android e iOS (mainnet + alfajores)
- Despliega a Google Play Store (Internal) y TestFlight
- Actualiza el backend de Railway
- Crea GitHub Release automáticamente
- Notifica el resultado
Tiempo total: 45-60 minutos (solo 5 minutos de trabajo manual)
📖 Guía Completa: Ver PROCESO-NUEVA-VERSION.md
- Android: Google Play Store
- iOS: App Store
- Producción:
https://tucopwallet-production.up.railway.app - Health Check:
/health - Versión de App:
/api/app-version - Info de Versión:
/api/version-info
- Principal:
https://github.com/TuCopFinance/TuCopWallet - Railway Backend: Incluido en este repositorio
RAILWAY_API_URL=https://tucopwallet-production.up.railway.app
RAILWAY_API_KEY=tu_api_key_aqui
GOOGLE_PLAY_JSON_KEY=contenido_del_json_key
APPLE_CONNECT_API_KEY=tu_apple_api_keyNODE_ENV=production
GITHUB_REPO=TuCopFinance/TuCopWallet
API_KEY=tu_api_key_segura
GITHUB_TOKEN=tu_github_token# Ver logs en tiempo real
cd railway-backend && railway logs
# Verificar estado
curl https://tucopwallet-production.up.railway.app/health# Ver workflows
gh run list
# Ver logs de un workflow
gh run view [run-id] --log# Consultar versión actual
curl -H "X-Platform: android" -H "X-Bundle-ID: org.tucop" \
https://tucopwallet-production.up.railway.app/api/app-versionyarn test # Todos los tests
yarn test:unit # Tests unitarios
yarn test:integration # Tests de integración
yarn test:e2e # Tests end-to-endyarn test:coverage # Generar reporte de cobertura- main: Rama principal (producción)
- develop: Rama de desarrollo
- feature/*: Nuevas características
- hotfix/*: Correcciones urgentes
- Crear feature branch desde
develop - Desarrollar y hacer commits
- Crear Pull Request a
develop - Merge a
mainpara release - Versionar y desplegar automáticamente
# Limpiar cache
yarn clean
yarn install
# Verificar configuración
yarn build:ts# Verificar backend
curl https://tucopwallet-production.up.railway.app/health
# Verificar configuración en NavigatorWrapper.tsx
useBackend: true# Verificar secrets
gh secret list
# Verificar workflow
gh run list# React Native
npx react-native log-android
npx react-native log-ios
# Metro Bundler
yarn start --reset-cache
# Railway Backend
railway logs --tail- Fork del repositorio
- Crear branch de feature
- Seguir convenciones de código
- Escribir tests para nuevas funcionalidades
- Crear Pull Request con descripción detallada
- Commits: Conventional Commits (
feat:,fix:,chore:) - Código: ESLint + Prettier
- TypeScript: Strict mode habilitado
- Tests: Jest + React Native Testing Library
Este proyecto está bajo la licencia MIT. Ver LICENSE para más detalles.
- Issues: GitHub Issues
- Documentación: Ver carpeta
/docs - Wiki: GitHub Wiki
- ✅ Sistema de Actualizaciones: Completamente funcional
- ✅ CI/CD Pipeline: Automatizado y probado
- ✅ Backend Railway: Desplegado y monitoreado
- ✅ Despliegue a Tiendas: Automático
- ✅ Documentación: Completa y actualizada
Versión Actual: 1.103.0 Última Actualización: Enero 2025 Estado: 🟢 Producción Estable
¡Desarrollado con ❤️ por el equipo de TuCOP Finance!