Добавление поддержки OpenSSL
Пакет Qt поставляется с поддержкой OpenSSL, но библиотеки OpenSSL не входят в пакет из-за юридических ограничений в некоторых странах. Если ваше приложение зависит от OpenSSL, рассмотрите возможность упаковки библиотек SSL в пакет приложения (APK), так как целевое устройство может иметь их, а может и не иметь. Вы можете использовать статический метод QSslSocket::supportsSsl() для проверки поддержки SSL на целевом устройстве.
Следующие инструкции помогут вам скомпоновать и добавить библиотеки OpenSSL в APK:
- Загрузите последние исходные коды OpenSSL с сайта http://www.openssl.org/source.
- Извлеките исходные файлы в папку и перейдите в эту папку с помощью консоли.
Примечание: Если ваша платформа разработки — Windows, вам потребуется
msysсperlv5.14 или более поздней версии для компиляции OpenSSL. - Установите следующие переменные среды, чтобы указать ARM компиляторную цепочку инструментов и sysroot, которые вы хотите использовать:
CC=<ANDROID_NDK_PATH>/toolchains/arm-linux-androideabi-<VER>/prebuilt/<NDK_HOST>/bin/arm-linux-androideabi-gcc AR=<ANDROID_NDK_PATH>/toolchains/arm-linux-androideabi-<VER>/prebuilt/<NDK_HOST>/bin/arm-linux-androideabi-ar ANDROID_DEV=<ANDROID_NDK_PATH>/platforms/android-9/arch-arm/usr
- Настройте исходные коды OpenSSL для сборки под Android (ARMv5 или ARMv7) с помощью следующей команды:
./Configure shared android or android-armv7
Примечание: Необходимо учитывать включение/отключение функций SSL в зависимости от юридических ограничений в регионе, где доступно ваше приложение. Подробную информацию о конфигурируемых функциях см. в разделе параметры настройки SSL.
- Отредактируйте файл Makefile, созданный командой Configure, чтобы избежать совпадений имён общих библиотек с номером версии. Android не загружает библиотеку с номером версии в имени файла
.so.- Откройте файл Makefile с помощью текстового редактора.
- Замените следующие две строки, которые появляются под целевыми задачами "link-shared" и "do_$(SHLIB_TARGET)":
LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \ LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
на
LIBNAME=$$i \
- Сохраните изменения в Makefile и закройте его.
- Запустите
make build_libsдля сборкиlibcryptoиlibsslобщих библиотек. - Откройте свой проект Qt с помощью Qt Creator и обновите настройки "Собрать APK для Android", чтобы добавить libcrypto и libssl как дополнительные библиотеки для вашего проекта.
- Запустите ваше приложение, чтобы посмотреть его работу на устройстве.
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/archives/qt-5.6/opensslsupport.html