обновление eas не работает должным образом для моего проекта

Я использую сборку и обновление eas в своем выставочном приложении, следил за документацией по реализации, и все работало нормально. Но я только вчера протестировал его, и сейчас он не работает.

Но я понял, что когда я обновляю приложение 2 раза (как указано в документах), оно не загружает никаких новых обновлений, но если я делаю это несколько раз (почти 5 раз), хотя обновление работает на этом конкретном обновлении. но активы (изображения и значки) исчезли.

И если я снова обновлю приложение, то обновление исчезнет, ​​и активы вернутся, как будто оно вернется к старому обновлению (которое на самом деле является самой сборкой).

Прямо сейчас я использую app.config.js, а также app.json (мне нужен app.json для рекламы Google, так как он не читает конфигурацию из app.config.js).

Вот файлы конфигурации;

app.config.js

      import "dotenv/config";

export default {
  expo: {
    backgroundColor: "#1A1A1A",
    owner: "owner",
    name: "name",
    slug: "slug",
    version: "1.0.0",
    assetBundlePatterns: ["**/*"],
    extra: {
      eas: {
        projectId: "<project id>",
      },
      ...
    },
    runtimeVersion: "1.0.1", // changed the runtime version from 1.0.0 to 1.0.1 as i thought this may be the reason
    updates: {
      url: "https://u.expo.dev/<project id>",
    },
    android: {
      ...,
    },
    
  },
};

app.json

      {
  "react-native-google-mobile-ads": {
    "android_app_id": "ca-app-pub-****************" // my google ads id
  }
}

androidManifest.xml

      <meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://u.expo.dev/<project id>"/>
<meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
<meta-data android:name="expo.modules.updates.EXPO_RUNTIME_VERSION" android:value="1.0.1"/>

Я думаю, что это единственный соответствующий код для обновлений eas и eas.

Любая помощь приветствуется.

Спасибо

1 ответ

Я использовал этот код для доступа к переменным env;

В моем app.config.js внутри объекта;

      extra: {
   BASE_URL: process.env.BASE_URL

}

Это загрузитBASE_URLиз .env во время сборки.

Теперь, чтобы получить к нему доступ в моем коде, я использовал;

      import Constants from 'expo-constants'

const baseUrl = Constants.manifest.extra.BASE_URL

Проблема заключается вConstants.manifest, он становится неопределенным после того, как мы отправим обновлениеextraв этом случае не определено, что нарушает работу приложения. И если приложение ломается из-за обновления, eas откатывается к предыдущему обновлению.

Чтобы исправить это, используйте Constants.expoConfig.extra.BASE_URL.

Еще одна вещь, на которую следует обратить внимание: при отправке обновления нам также необходимо загрузить переменные env с новым обновлением, что делается следующим образом;

      BASE_URL=https://example.com ANOTHER_VAR=some_value eas update --branch preview --message "some message"
Другие вопросы по тегам