我们的 React Native 项目同时集成了 Segment 和 CodePush。
段工作正常,正常。
但是在安装 CodePush 更新后,Segment 会立即停止工作。没有任何东西被清除,并且没有任何事件显示在 Live Debugger 列表中 - 除了在本机层中跟踪的事件(例如:“应用程序打开”和“应用程序后台” - 只有这些显示)。
因此,我假设 RN - Javascript 层中的任何 Segment 调用仅在应用程序重新启动捆绑包后(通过 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)