I have very difficult and totally ungoogleable problem with cordova.
A program, working perfectly being compiled in --debug
mode, ceases working after compilation in --release
mode.
I made sure the source is identical, and the effect is constant.
The only difference between --debug
build and --release
build is that the --release
build fails to open any SSL connections.
This problem is localized very narrow, in my case it is the following line:
Socket = new WebSocket('wss://376.su/');
a friend of mine has reported the same error occurrence in the line:
<img src="https://blabla" />;
UPD: the problem is solved see the answers.
I have identified the exact source of the problem and i have found the perfect solution. It turned out to be a superposition of two separate issues each of which is seriously misleading:
My SSL certificate from Thawte (despite its cost) is not recognized by Android 5.1.1 as a valid one (while being recognized by all desktop browsers)
The --debug
flag in cordova build
simply ignores certificate "errors" (silently).
Go to your project's directory and find the following file:
platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java
Locate the method definition (onReceivedSslError
) and the following condition:
(appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0
This is what makes --debug
and --release
different.
In order to ignore certificate "errors" the following code should be executed:
handler.proceed();
return;
This file persists through the build process. Don't forget to ignore those quasi-errors next time you add a platform to your project.