React-родной Android CodePush не работает в режиме релиза

У меня есть react-native приложение с 3 android ароматы продукта, а именно dev, prod и staging. Проблема в том, что когда я пытаюсь распространять приложение через Crashlytics, в основном, когда я строю релиз подписанный apk файл, CodePush перестает работать я использую redux-saga в моем приложении, и я использую react-native-redux-saga пакет для проверки CodePush Обновления. Все отлично работает на iOS, но не для Android как я уже говорил выше.

В моем Android проект, у меня есть strings.xml файл для каждого продукта, который выглядит следующим образом:

<resources>
    <string moduleConfig="true" name="reactNativeCodePush_androidDeploymentKey">_My_CodePush_Key</string>
    <string name="app_name">MyApp Staging</string> 
</resources>

Настройки продукта выглядят так:

productFlavors {

        prod {
            versionCode 6
            versionName "1.1"
        }

        staging {
            minSdkVersion 16
            applicationId 'com.myapp.staging'
            versionCode 6
            versionName "1.1"
        }

        dev {
            minSdkVersion 16
            applicationId 'com.myapp.dev'
            versionCode 6
            versionName "1.1"
        }
    }

И мой MainApplication.java файл выглядит так:

public class MainApplication extends Application implements ReactApplication {

  private final MyReactNativeInstanceHolder mReactNativeHost = new MyReactNativeInstanceHolder(this) {

    @Override
    protected String getJSBundleFile() {
      return CodePush.getJSBundleFile();
    }

    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
            // ...Some packages
            new CodePush(getResources().getString(R.string.reactNativeCodePush_androidDeploymentKey), getApplicationContext(), BuildConfig.DEBUG),
            // ...More packages
      );
    }
  };

  @Override
  public void onCreate() {
    CodePush.setReactInstanceHolder(getReactNativeHost());
    super.onCreate();
    Fabric.with(this, new Crashlytics());
  }

  @Override
  public MyReactNativeInstanceHolder getReactNativeHost() {
      return mReactNativeHost;
  }
}

Я пытался удалить BuildConfig.DEBUG параметр из CodePush пакет, но проблема не уходит.

MyReactNativeInstanceHolder.java файл выглядит так:

public class MyReactNativeInstanceHolder extends ReactNativeHost implements ReactInstanceHolder {
    protected MyReactNativeInstanceHolder(Application application) {
        super(application);
    }

    @Override
    public boolean getUseDeveloperSupport() {
        return false;
    }

    @Override
    protected List<ReactPackage> getPackages() {
        return null;
    }
}

Я также проверил ключи для CodePush приложение, и там нет никаких проблем. Эта проблема действительно странная, и мне бы очень хотелось помочь. Есть ли что-то, что мне не хватает?

0 ответов

Другие вопросы по тегам