Checkout and create the environment.
git clone --depth 1 --branch 1.0 --single-branch https://github.com/VXSTATS/com.vxstats.qt.git
cd com.vxstats.qt
mkdir build
cd build
The macOS build will do a fair use check of the app, so it is essential to have OpenSSL 1.1 or OpenSSL 3 installed. You can find OpenSSL using the OPENSSL_ROOT_DIR set. The easiest way is to install OpenSSL from brew (https://brew.sh/).
brew install openssl@1.1
brew list openssl@1.1
brew install openssl@3
brew list openssl@3
Then brew will show you the OpenSSL installation path of latest version. Normally you can use /usr/local/opt/openssl@1.1 or /usr/local/opt/openssl@3.
Use a Qt Creator to load CMakeList.txt from the checked-out folder, run the cmake enviroment, generate makefiles, and build it.
cmake ..
make -j`nproc`
Inside cmake/env.cmake you will find some user-defined build options for particular purposes.
You can log the verbose build output.
# for debugging of build steps
option(CMAKE_VERBOSE_MAKEFILE "Show the complete build commands" OFF)
You can disable Qt Gui dependencies.
# build with or without Qt Gui dependency
option(GUI "Build with or without Qt Gui dependency" ON)
If you want to build for iOS or build with an iOS specified cmake toolchain (https://github.com/leetal/ios-cmake). You will find complete documentation here and can generate native XCode builds.
# enable iOS build
option(IOS "Enable iOS build" OFF)
using namespace vxstats;
Qt application name and version.
QCoreApplication::setApplicationName( "$appid" );
QCoreApplication::setApplicationVersion( "$version" );
Alternatively, use direct setup without Qt meta system.
App::instance().setIdentifier( "$appid" );
App::instance().setVersion( "$version" );
Setting up your build id is only possible directly; Qt will not support such a value directly.
App::instance().setBuild( "$build" );
Set up your environment with your credentials. Please put your username, password and url here. For obfuscation, please follow our best practice documentation.
Statistics::instance().setUsername( "sandbox" );
Statistics::instance().setPassword( "sandbox" );
Statistics::instance().setServerFilePath( "https://sandbox.vxstats.com/" );
This is the global context that you are currently in your application. Just give it a simple name with logical app structure to identify where the user stays.
Statistics::instance().page( "Main" );
If you want to request a page with dynamic content, please use this function.
Statistics::instance().event( "$action", "$value" );
To capture ads - correspondingly the shown ad.
Statistics::instance().ads( "$campain" );
To capture map shifts - correspondingly the new center.
Statistics::instance().move( "$latitude", "$longitude" );
To capture open websites or documents including the information which page or form has been requested.
Statistics::instance().open( "$urlOrName" );
To capture played files including the information which file/action has been played.
Statistics::instance().play( "$urlOrName" );
To capture searches including the information for what has been searched.
Statistics::instance().search( "$search" );
To capture when the device was shaken.
Statistics::instance().shake();
To capture typed/touched actions.
Statistics::instance().touch( "$action" );
- 6.4
- 6.3
- 6.2
- 6.1 (arm64 build not supported - Apple Silicon and Windows on ARM)
- 5.15
- Windows 11
- Windows 10
- macOS 12
- macOS 11
- macOS 10.15
- macOS 10.14
- macOS 10.13
- macOS 10.12
- Red Hat 9
- Red Hat 8
- Ubuntu 22.04
- Ubuntu 20.04
- Ubuntu 18.04
- Every combination of supported Qt Version on a Linux system should work nicely
- iOS 16
- iOS 15
- iOS 14
- iOS 13
- iOS 12
- API 16 4.1.1 and above
- If you change the display ratio to a new value - e.g. from 100% to 150% - the change will take effect after re-login.
We have already successfully passed the review process. If you have issues with the review process, please let us know and ask for support@vxstats.com to solve your needs.