我面临一个奇怪的Delphi Indy SSL问题。我为Android开发了一个应用程序,该应用程序通过SSL加密连接到服务器。我提供了OpenSSL库,并且在调试设备时效果很好(Samsung A 3 2016)。但是,当我上传.aab文件并从PlayStore下载该应用程序(内部测试)时,我的应用程序无法加载SSL库。因此,我使用不同的设备进行了测试以重现该错误。不幸的是,它在我下载该应用程序的所有设备(32位和64位)上都可以运行。我被这些特定的设备所困,无法重现无法加载SSL库的错误。
Successful tested devices
- Samsung S4 Mini (32bit)
- Samsung S7 Mini
- Sony XPeria XA (64Bit)
- Sony XPeria XZ1 Compact (
- Huawei P30 (64Bit)
Unsuccessful tested devices
- Samsung A3 2016 (32bit)
=> this device is not able to load the SSL Libraries I provide
这是我用来设置路径的代码,取决于操作系统和CPU
{$region 'Android'}
{$IFDEF ANDROID}
{$IFDEF CPU64BITS}
FAppPath := TPath.Combine(TPath.GetDocumentsPath,'bit64');
MemoText := '64 bit SSL libs: ' + FAppPath ;
Synchronize(doMemoAddLine);
{$ELSE}
FAppPath := TPath.GetDocumentsPath ;
MemoText := '32 bit SSL libs: ' + FAppPath ;
Synchronize(doMemoAddLine);
{$ENDIF}
IdOpenSSLSetLibPath(FAppPath);
MemoText := 'IdOpenSSLSetLibPath(' + FAppPath +')' ;
Synchronize(doMemoAddLine);
MemoText := WhichFailedToLoad;
Synchronize(doMemoAddLine);
{$ENDIF}
{$endregion}
我解决了问题,我在使用旧的OpenSSL库。我只部署了一个更新的库,并且可以正常工作。结案]