Neuere Versionen von OSX enthalten keine OpenSSL-Bibliotheken oder sie sind zu alt, daher müssen Sie sie mit Ihrer Anwendung bereitstellen. Stellen Sie diese Bibliotheken mit den folgenden Schritten bereit:
Öffnen Sie Project/Deployment in Ihrem Projekt.
Erforderliche Bibliotheken hinzufügen.
Setzen Sie RemotePath = 'Contents\Macos\'.
Konfigurieren Sie den OpenSSL-LibPath auf den Standardordner:
Client.TLSOptions.OpenSSL_Options.LibPath = oslpDefaultFolder.
Server.SSLOptions.OpenSSL_Options.LibPath = oslpDefaultFolder.
Erfordert die folgenden Bibliotheken:
Sie können die neuesten Bibliotheken aus Ihrem Konto herunterladen.
Erfordert die folgenden Bibliotheken:
Es gibt eine Version für 32 Bit und eine andere für 64 Bit. Sie müssen diese Bibliotheken in denselben Ordner kopieren, in dem sich Ihre Anwendung befindet.
Sie können die neuesten Bibliotheken aus Ihrem Konto herunterladen.
Erfordert die folgenden Bibliotheken:
Nur die 64-Bit-Version wird bereitgestellt. Sie müssen diese Bibliotheken in denselben Ordner kopieren, in dem sich Ihre Anwendung befindet.
Sie können die neuesten Bibliotheken aus Ihrem Konto herunterladen.
Wenn Sie die OpenSSL-Bibliotheken in eine OSX-Anwendung einbinden, werden die Bibliotheken nach der Notarisierung der Anwendung signiert. Sie können dies mit dem folgenden Befehl überprüfen:
codesign -dv --verbose=4 libcrypto.1.1.dylib
Sehen Sie sich das folgende Video an, das zeigt, wie man eine MacOSX64-Anwendung mit OpenSSL-Bibliotheken erstellt.
https://www.esegece.com/websockets/videos/delphi/quickstart/275-build-macosx64-application/file
Clients sollten die nicht versionierte libcrypto-dylib nicht laden, da sie keine stabile ABI hat.
Unter MacOS Monterey+ können Sie diesen Fehler erhalten, wenn Sie versuchen, die OpenSSL-Bibliotheken zu laden. Der Fehler tritt auf, wenn versucht wird, zuerst die OpenSSL-Bibliotheken ohne Version zu laden (zum Beispiel libcrypto.dylib).
Um diesen Fehler zu beheben, setzen Sie in der Eigenschaft OpenSSL_Options.UnixSymLinks den Wert oslsSymLinksDontLoad. Dies vermeidet das Laden der OpenSSL-Bibliotheken ohne Version.