Does Indy need special libcrypto.dylib and libssl.dylib on MAC?

I provide libcrypto.1.0.0.dylib and libssl.1.0.0.dylib, and it worked all the time just fine, even with Mojave.

Now I updated to Catalina and the app does not start anymore, and I get errors like

"Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI."

Any idea what I can do about it? Embarcadero state somewhere that this libs does not need to be provided, because they are already installed by the OS, but does indy work with the pre-installed versions or could it cause issues?

Parents
No Data
Reply
  • "Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI."

    Try calling 'IdOpenSSLSetCanLoadSymLinks(False)' or 'IdOpenSSLSetLoadSymLinksFirst(False)' at program startup (they are declared in the 'IdSSLOpenSSLHeaders' unit) before calling 'TIdHTTP.Get()', that way Indy will attempt to load versioned dylibs before skipping/resorting to unversioned dylibs.

    Embarcadero state somewhere that this libs does not need to be provided, because they are already installed by the OS

    That is old advice, before OpenSSL 1.1.0 was released, and before Apple deprecated support for OpenSSL.

    does indy work with the pre-installed versions

    Hard to say for sure without knowing which versions are installed.  If 1.0.2 or earlier, yes.  If 1.1.0+, no (yet).

    could it cause issues?

    Loading pre-installed versions on modern systems may cause problems, yes.  To avoid any complications, you should provide your own compatible OpenSSL dylibs with your app, and then call Indy's 'IdOpenSSLSetLibPath()' function at startup (it is declared in the 'IdSSLOpenSSLHeaders' unit) to tell Indy which folder to load them from.

Children