There are a lot of web based APIs like Facebook where you will need to use SSL to connect and access them. Olaf Monien has a blog post that covers each Delphi Firemonkey platform and how to get SSL working on each of them. Each platform in Delphi Firemonkey has a slightly different way of accessing the OpenSSL libraries which Indy 10 (the TCP/UDP library in XE5) uses. For IOS you will need to download and place in your build directory the static libraries libcrypto.a and libssl.a. For Windows you will need to include libeay32.dll and ssleay32.dll with your application that you distribute. On Windows the section option is for the user to install OpenSSL separately. An install wizard for OpenSSL on Windows can be downloaded from openssl.org. Olaf provides links to the static version of the OpenSSL library which you’ll need for IOS. He has some sample code which goes in your project file that handles the includes cross platform:
{$IF Defined(IOS) and Defined(CPUARM)}
 Â
IdSSLOpenSSLHeaders_Static,
{$ELSE}
 Â
IdSSLOpenSSLHeaders,
{$ENDIF}
 Â
FMX.Forms,
 Â
Unit5 in 'Unit5.pas' {Form5};
{$R *.res}
begin
{$IF Defined(IOS) and not Defined(CPUARM)}
 Â
IdOpenSSLSetLibPath('/usr/lib/');
{$ENDIF}
Update: I think for Android SSL just works. No special configuration required.
Head over and read the full blog post on how to get SSL working.
I have been watching the referenced blog for some time. The android process to use SSL is still not posted anywhere that I can find. I would like to thank the developers of this site for combining a myriad of sources on the internet in to one place. It is tremendously helpful. I feel you have placed yourselves in a great place to be a continuing source for firemonkey efforts.
I believe Android ships with OpenSSL so you don’t have to do anything special to make it work. I just did a test with TRESTClient against an HTTPS URL and it worked okay without doing anything else.
Something I should have tried first. I have been so buried in the IOS development portion, it never crossed my mind that it would actually NOT be a problem in Android. It would be good if Olaf would just put that in his blog instead of “Info follows soon!”. Thank you for the extra effort. I find myself coming here a great deal more often than any other site related to firemonkey.
Have you ever attempted a SOAP import of a WSDL and conducting the same test? I can get the app to work just fine on windows, but when a call is made to the WSDL object on Android I get an access violation. If I could find a sample SOAP program on Android that worked, it should be easy to figure out whatever issues exist in general.
SOAP is just a HTTP POST. Can you use TRESTClient manually for it? Also are you deploying in Debug mode for Android? There is a bug in Delphi XE5 where the internet permission is not set when you deploy to Application Store for Android (it has to be done manually).
I was able get both HTTP and HTTPS SOAP calls working on WIN32 and IOS after importing a WSDL. Those platforms worked fine. The same code on Android brings up a general Access Violation. I understand what your proposing, and it makes sense to work around the issue, but the SOAP/WSDL import really needs to get fixed. I will try to log a QA ticket if I can in Quality Central and there does not exist one already. I had this trouble on IOS when I was in the beta. I kept banging the SOAP/WSDL gong as there are so many legacy services out there that are not going to change just because our beloved Delphi has changed 🙂 Thanks for the input and suggestions.
I opened a QC report on this # is 122209. Anyone who feels this is important may want to hit the Quality Central site and vote for the issue to raise its importance.
Bumping this thread. If you have this issue please go to Quality Central and vote for report QC#: 122209 at:
qc.embarcadero.com
This issue QC#122209 has been resolved, closed, checked in and will be available in the next version of RAD Studio.