@startuml uml-deployment-distribution !include _style.iuml title 3. Diagrama UML de Despliegue — Build y distribucion movil cloud "Expo EAS" <> as EAS { component "Build iOS\nmacOS / Xcode runner" as easIos component "Build Android\nLinux / Gradle runner" as easAnd component "OTA updates (expo-updates)" as easOta artifact "expressmx-cliente.ipa\nexpressmx-prestador.ipa" as ipaArt artifact "expressmx-cliente.aab\nexpressmx-prestador.aab" as aabArt artifact "JS bundles firmados (OTA)" as otaArt } node "Apple App Store" <> as AppStore { artifact "ExpressMX Cliente\ncom.expressmx.client" as appCliIos artifact "ExpressMX Prestador\ncom.expressmx.provider" as appPrIos } node "Google Play" <> as Play { artifact "ExpressMX Cliente\ncom.expressmx.client" as appCliAnd artifact "ExpressMX Prestador\ncom.expressmx.provider" as appPrAnd } node "iPhone iOS 16+" <> as iPhone node "Android 11+" <> as Android easIos --> ipaArt : produce easAnd --> aabArt : produce easOta --> otaArt : produce ipaArt ..> appCliIos : TestFlight / App Store Connect API ipaArt ..> appPrIos : TestFlight / App Store Connect API aabArt ..> appCliAnd : Play Console (track Internal / Production) aabArt ..> appPrAnd : Play Console (track Internal / Production) appCliIos ..> iPhone : Apple distribution channel appPrIos ..> iPhone : Apple distribution channel appCliAnd ..> Android : Google Play distribution appPrAnd ..> Android : Google Play distribution otaArt ..> iPhone : HTTPS expo-updates manifest otaArt ..> Android : HTTPS expo-updates manifest note bottom of EAS EAS dispara desde GitHub Actions cuando se hace tag release/* en apps/mobile-*. Build artefactos firmados, subidos a stores y publicado OTA. end note footer Fuente: apps/mobile-client/eas.json + apps/mobile-provider/eas.json @enduml