[Need Help]: Qt5.15 support iOS TLS 1.3
-
Now is using Qt5.15.19, and using
#if defined(Q_OS_IOS) #if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0)) sslConfig.setProtocol(QSsl::TlsV1_2OrLater); #else sslConfig.setProtocol(QSsl::TlsV1_3OrLater); #endif #elif defined(Q_OS_ANDROID) sslConfig.setProtocol(QSsl::TlsV1_3OrLater); #endif
When when build by using Xcode and set mimi iOS as 13, get:
QTcpSocket(0x15c4c2430) SecureTransport does not support TLS 1.3 qt.network.ssl: QTcpSocket(0x15c4c2430) SecureTransport does not support TLS 1.3
Any suggestions? thanks a lot.
-
You could...
- Install the OpenSSL development libraries
- Rebuild the Qt libraries from source
- Add the OpenSSL library folder to your project's DYLD_LIBRARY_PATH
See:
- General information about building Qt 5.15 from source code on macOS: https://doc.qt.io/qt-5/macos-building.html
- Instructions on how to make Qt Network use OpenSSL: https://doc.qt.io/qt-5/ssl.html#enabling-and-disabling-ssl-support
-
Now is using Qt5.15.19, and using
#if defined(Q_OS_IOS) #if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0)) sslConfig.setProtocol(QSsl::TlsV1_2OrLater); #else sslConfig.setProtocol(QSsl::TlsV1_3OrLater); #endif #elif defined(Q_OS_ANDROID) sslConfig.setProtocol(QSsl::TlsV1_3OrLater); #endif
When when build by using Xcode and set mimi iOS as 13, get:
QTcpSocket(0x15c4c2430) SecureTransport does not support TLS 1.3 qt.network.ssl: QTcpSocket(0x15c4c2430) SecureTransport does not support TLS 1.3
Any suggestions? thanks a lot.
Thanks a lot. here is my current steps.
- download qt source code.
- .configure with using open-ssl linked.
- make, make install
- qt creator link this qt.
- Xcode run, but meet some errors, even adding "QMAKE_CXXFLAGS += -DQML_DISABLE_JIT" in qtbase/mkspecs/common/ios.conf,
"JSC::Yarr::digitsCreate()", referenced from: JSC::Yarr::YarrPattern::digitsCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::spacesCreate()", referenced from: JSC::Yarr::YarrPattern::spacesCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::newlineCreate()", referenced from: JSC::Yarr::YarrPattern::newlineCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o) "JSC::Yarr::wordcharCreate()", referenced from: JSC::Yarr::YarrPattern::wordcharCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o) "JSC::Yarr::nondigitsCreate()", referenced from: JSC::Yarr::YarrPattern::nondigitsCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::nonspacesCreate()", referenced from: JSC::Yarr::YarrPattern::nonspacesCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::nonwordcharCreate()", referenced from: JSC::Yarr::YarrPattern::nonwordcharCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::wordUnicodeIgnoreCaseCharCreate()", referenced from: JSC::Yarr::YarrPattern::wordUnicodeIgnoreCaseCharCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o) "JSC::Yarr::nonwordUnicodeIgnoreCaseCharCreate()", referenced from: JSC::Yarr::YarrPattern::nonwordUnicodeIgnoreCaseCharCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) ld: symbol(s) not found for architecture arm64 clang++: error: linker command failed with exit code 1 (use -v to see invocation)
any suggestions? thanks a lot
-
Hi,
How exactly did you configure Qt ?
What kind of Mac are you using ? Intel or Apple Silicon ? -
Thanks a lot. here is my current steps.
- download qt source code.
- .configure with using open-ssl linked.
- make, make install
- qt creator link this qt.
- Xcode run, but meet some errors, even adding "QMAKE_CXXFLAGS += -DQML_DISABLE_JIT" in qtbase/mkspecs/common/ios.conf,
"JSC::Yarr::digitsCreate()", referenced from: JSC::Yarr::YarrPattern::digitsCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::spacesCreate()", referenced from: JSC::Yarr::YarrPattern::spacesCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::newlineCreate()", referenced from: JSC::Yarr::YarrPattern::newlineCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o) "JSC::Yarr::wordcharCreate()", referenced from: JSC::Yarr::YarrPattern::wordcharCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o) "JSC::Yarr::nondigitsCreate()", referenced from: JSC::Yarr::YarrPattern::nondigitsCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::nonspacesCreate()", referenced from: JSC::Yarr::YarrPattern::nonspacesCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::nonwordcharCreate()", referenced from: JSC::Yarr::YarrPattern::nonwordcharCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) "JSC::Yarr::wordUnicodeIgnoreCaseCharCreate()", referenced from: JSC::Yarr::YarrPattern::wordUnicodeIgnoreCaseCharCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o) "JSC::Yarr::nonwordUnicodeIgnoreCaseCharCreate()", referenced from: JSC::Yarr::YarrPattern::nonwordUnicodeIgnoreCaseCharCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o) ld: symbol(s) not found for architecture arm64 clang++: error: linker command failed with exit code 1 (use -v to see invocation)
any suggestions? thanks a lot
-
issue of "JSC::Yarr::digitsCreate()" is fixed by python path.
Here is my env and steps:
Env: Apple M4 Pro, macOS: Sequoia 15.5.
Here are steps:
OpenSSL Lib prepare:
1-1: Download openssl-apple https://github.com/passepartoutvpn/openssl-apple?tab=readme-ov-file
1-2: ./build-libssl.sh --version=3.4.1 --targets="ios64-cross-arm64", and get "iphoneos18.5-arm64.sdk"Download Qt source from Qt. (qt-everywhere-src-5.15.19)
Build Qt:
3-1: OPENSSL_LIBS='-L/Users/xxx/OpenSSL/iphoneos18.5-arm64.sdk/lib -lssl -lcrypto' ./configure
-xplatform macx-ios-clang
-release
-static
-nomake tests -nomake examples
-skip qtwebengine -skip qtscript -skip qtdoc -skip qtlocation
-openssl-linked
-I/Users/xxx/OpenSSL/iphoneos18.5-arm64.sdk/include
-L/Users/xxx/OpenSSL/iphoneos18.5-arm64.sdk/lib
-no-securetransport
-prefix /Users/xxx/Qt/5.15.19ios3-2: make -j1
3-3: make install4: Qt creator link this /Users/xxx/Qt/5.15.19ios/bin
5: build in Qt creator, run in Xcode
- ❌🚧 Issue: "SSL handshake failed" when tries to communicate with one TLS1.3 api.
Any suggestions? thanks a lot.
-