我有一个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
应用的密钥,并且没有任何问题。这个问题真的很奇怪,我真的很想得到一些帮助。有什么我想念的吗?