Segment trackEvent не работает сразу после установки обновления CodePush
В нашем проекте React Native интегрированы как Segment, так и CodePush.
Сегмент работает нормально, нормально.
Но есть сценарий, когда сегмент перестает работать сразу после установки обновления CodePush. Ничего не сбрасывается, и ни одно из событий не отображается в списке Live Debugger - за исключением событий, которые отслеживаются на собственном уровне (например: "Приложение открыто" и "Приложение фоновое" - отображаются только они).
Поэтому я предположил, что любой вызов сегмента на уровне RN - Javascript перестает работать только после того, как приложение перезапустит пакет (с помощью CodePush).
Пользователь должен закрыть и убить приложение и снова открыть приложение, чтобы оно снова работало нормально.
Бывает как на iOS, так и на Android (при установке из магазина).
И, как ни странно, я не могу воссоздать проблему на Android, когда я запускаю отладочную или выпускаю сборку прямо на свой телефон Android с моей машины (это просто работает ♂️). То же самое и с симуляторами iOS.
Есть идеи или обходные пути по этому поводу?
Вот как выглядит установка:
import React, { Component } from "react";
import CodePush from "react-native-code-push";
import segment from "@segment/analytics-react-native";
...
class App extends Component {
constructor(props) {
super(props);
this.setupSegment();
}
private setupSegment(): void {
segment.setup("<Segment Write Key>", {
debug: true,
trackAppLifecycleEvents: true,
ios: {
trackAdvertising: true
}
});
}
...
}
export default CodePush({
installMode: CodePush.InstallMode.IMMEDIATE,
checkFrequency: CodePush.CheckFrequency.ON_APP_RESUME,
updateDialog: null
})(App);
react-native: 0.61.5
react-native-code-push: 6.1.0
@segment/analytics-react-native: 1.1.1-beta.2 (also tried 1.1.1-beta.5)