Добавление поддержки OpenSSL для Android
Пакет установки Qt поставляется с поддержкой OpenSSL, но библиотеки OpenSSL не входят в пакет из-за правовых ограничений в некоторых странах. Если ваше приложение зависит от OpenSSL, рассмотрите возможность включения библиотек SSL в свой пакет приложения (APK), так как на целевом устройстве они могут отсутствовать. Вы можете использовать статический метод QSslSocket::supportsSsl() для проверки поддержки SSL на целевом устройстве.
Следующие инструкции помогут вам создать и добавить библиотеки OpenSSL в APK:
- Скачайте последние исходные коды OpenSSL 1.1.x с http://www.openssl.org/source.
- Распакуйте исходные коды в папку и перейдите в эту папку с помощью командной строки.
Примечание: Если ваша платформа разработки Windows, вам потребуется
msysсperlv5.14 или более поздней версии для сборки OpenSSL. - Добавьте android llvm toolchain в вашу переменную среды PATH:
export PATH="<android_ndk_path>/toolchains/llvm/prebuilt/<host>/bin":$PATH
- Настройте исходные коды OpenSSL для сборки под Android, используя следующую команду:
./Configure shared android-<arch> -D__ANDROID_API__=21
Примечание: Вы должны включить/отключить функции SSL в зависимости от правовых ограничений в регионе, где доступно ваше приложение. Подробную информацию о настраиваемых функциях см. в разделе Параметры конфигурации SSL.
- Запустите
make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" build_libsдля сборкиlibcryptoиlibsslобщих библиотек, которые не имеют версионирования.Примечание: Android не загружает версиированные библиотеки.
- Откройте свой проект Qt с помощью Qt Creator и обновите настройки "Сборка APK для Android", чтобы добавить libcrypto и libssl в качестве дополнительных библиотек для вашего проекта.
- Запустите ваше приложение, чтобы увидеть его работу на устройстве.
Примечание: здесь https://github.com/KDAB/android_openssl вы найдете скрипт, который может использоваться для компиляции openssl для всех android abis, а также последние предварительно скомпилированные библиотеки.
Qt Creator собирает ваше приложение и создает пакет приложения (APK) с включенными в него библиотеками OpenSSL. После подготовки APK, он использует adb для развертывания APK на выбранном вами целевом устройстве и запуска приложения.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/android-openssl-support.html