Как показать текущую метку версии CodePush в приложении Android React Native?

Ищете что-то вроде: <Text>VERSION={CodePush.VersionLabel}</Text>

Где CodePush.VersionLabel - это что-то вроде "v6", которое отображается в code-push deployment ls <MyApp>

Я хотел бы показать это внизу моего экрана входа.

Ответ 1

componentDidMount(){
    codePush.getUpdateMetadata().then((metadata) =>{
      this.setState({label: metadata.label, version: metadata.appVersion, description: metadata.description});
    });
}

render() {
    return(
        <Text>{this.state.version}.{this.state.label}</Text>
    );
}

Примечание. Свойством .label является внутренний номер сборки, используемый CodePush (например, v24)

Ответ 2

componentDidMount() {
 CodePush.getCurrentPackage().then((update)=> {
    console.log('####### CodePush', update);
 });
}

Ответ 3

Если доступных обновлений нет, getUpdateMetadata() возвращает null...

Временное решение:

import codePush from "react-native-code-push";

async function getAppVersion() {
    const [{ appVersion }, update] = await Promise.all([
    codePush.getConfiguration(),
    codePush.getUpdateMetadata()
    ]);

    if (!update) {
        return 'v${appVersion}';
    }

    const label = update.label.substring(1);
    return 'v${appVersion} rev.${label}';
};

export { getAppVersion };

Пример вывода: v1.4.4 " ИЛИ v1.4.4 rev.5" в зависимости от состояния.