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
приложение, и там нет никаких проблем. Эта проблема действительно странная, и мне бы очень хотелось помочь. Есть ли что-то, что мне не хватает?