Cordova 由于SslErrorHandler,PlayStore警告应用程序

Cordova 由于SslErrorHandler,PlayStore警告应用程序,cordova,ionic3,android-security,cordova-android,sslerrorhandler,Cordova,Ionic3,Android Security,Cordova Android,Sslerrorhandler,我们使用Cordova和Ionic 3开发了一个应用程序,在将我们的应用程序的新版本更新到Play Store后,我们收到了以下警告 下面是警告的屏幕截图: 我们使用以下作为环境: cordova-android: 7.1.4 cordova-cli: 8.0.0 ionic: 3.20.0 我找到的唯一相关代码是cordova引擎下的文件SystemWebViewClient.java,我们无法真正更改,也从未更改过,因为它位于生成的文件夹platforms/android/Cordova

我们使用Cordova和Ionic 3开发了一个应用程序,在将我们的应用程序的新版本更新到Play Store后,我们收到了以下警告

下面是警告的屏幕截图:

我们使用以下作为环境:

cordova-android: 7.1.4
cordova-cli: 8.0.0
ionic: 3.20.0
我找到的唯一相关代码是cordova引擎下的文件SystemWebViewClient.java,我们无法真正更改,也从未更改过,因为它位于生成的文件夹platforms/android/CordovaLib/src/org/apache/cordova/engine/下

这是可以找到的代码:

 /**
 * Notify the host application that an SSL error occurred while loading a resource.
 * The host application must call either handler.cancel() or handler.proceed().
 * Note that the decision may be retained for use in response to future SSL errors.
 * The default behavior is to cancel the load.
 *
 * @param view          The WebView that is initiating the callback.
 * @param handler       An SslErrorHandler object that will handle the user's response.
 * @param error         The SSL error object.
 */
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {

    final String packageName = parentEngine.cordova.getActivity().getPackageName();
    final PackageManager pm = parentEngine.cordova.getActivity().getPackageManager();

    ApplicationInfo appInfo;
    try {
        appInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
        if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
            // debug = true
            handler.proceed();
            return;
        } else {
            // debug = false
            super.onReceivedSslError(view, handler, error);
        }
    } catch (NameNotFoundException e) {
        // When it doubt, lock it out!
        super.onReceivedSslError(view, handler, error);
    }
}

有人找到过解决方案吗?

你找到了解决方案吗?@AdrianKrebs是的,我们能够找到我们使用的第三方库中的class.cf,因此他们向我们发送了一个更新版本的修复程序。我们通过对apk文件进行反向工程来发现它,并将其跟踪到第三方库,我建议至少也这样做以查明问题所在。您还可以编写一个脚本来修改适当的文件,以解决此问题。