2.0.2: evento de fallo de compra + analytics off en UI tests
premium_purchase_failed con reason (cancelled/pending/unverified/error) en todas las salidas no exitosas de StoreManager.purchase. Hasta ahora un usuario que se echaba atras y uno al que le fallaba la compra eran indistinguibles: los dos dejaban un premium_upgrade_tapped huerfano. El caso de Aleman (6 taps en 2 dias, cero compras) no se puede diagnosticar sin esto. Los UI tests dejan de mandar eventos a GA4 de produccion: launch argument UITEST_DISABLE_ANALYTICS que hace no-op logEvent y apaga la recoleccion de Firebase, para cortar tambien los automaticos (first_open, session_start, screen_view). Ya habian contaminado los datos: los eventos de pasos 5/6 bajo la version 2.0 eran ejecuciones de test, no usuarios. Detalle que costo encontrar: setAnalyticsCollectionEnabled persiste entre lanzamientos, asi que se escribe siempre (!isDisabled) y no solo al apagar. Si no, un unico test dejaba analytics muerto para siempre en esa instalacion. Verificado por pares de lanzamientos: con flag acaba en disabled, sin flag vuelve a enabled. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Ks8uUcMA9mjypVK7F2Pkt
This commit is contained in:
@@ -16,6 +16,11 @@ final class OnboardingFlowUITests: XCTestCase {
|
||||
app = XCUIApplication()
|
||||
// Pin the language so the run doesn't depend on the simulator's locale.
|
||||
app.launchArguments += ["-AppleLanguages", "(en)", "-AppleLocale", "en_US"]
|
||||
// Keep synthetic runs out of the production GA4 property. Literal on
|
||||
// purpose: a UI test bundle doesn't link the app target, so it can't
|
||||
// reference AnalyticsService.launchArgumentDisablingAnalytics — keep the
|
||||
// two in sync by hand.
|
||||
app.launchArguments.append("UITEST_DISABLE_ANALYTICS")
|
||||
}
|
||||
|
||||
func testOnboardingReachesWeekReadyAndPaywallBeforeTheHome() {
|
||||
|
||||
Reference in New Issue
Block a user