2

React Native プロジェクトには、Segment と CodePush の両方が統合されています。

セグメントは正常に動作します。

ただし、CodePush 更新プログラムがインストールされた直後にセグメントが機能しなくなるシナリオがあります。何もフラッシュされず、ライブ デバッガー リストに表示されるイベントはありません - ネイティブ レイヤーで追跡されるイベント (例: "Application Opened" および "Application Backgrounded" - これらのみが表示されます) を除きます。

したがって、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)
4

0 に答える 0