[Development] The future of Qt Purchasing in Qt 6

Eskil Abrahamsen Blomfeldt Eskil.Abrahamsen-Blomfeldt at qt.io
Wed Jun 10 11:10:26 CEST 2020


Hi!


Qt Purchasing is a convenience API for handling in-app purchases on different platforms. Qt 6 will go through lots of changes that affect many modules. It is therefore a good time to reconsider the future of Qt Purchasing API.


One potential pitfall of the API is that apps developed with it could suffer from weakened copy protection due to Qt open source nature. For example, platforms like Android recommend doing code obfuscation for the app's source code [1]. It might be possible to replace the app's package with a custom-built Qt Purchasing library and use instead, thus breaking copy protection.


Another challenge we have been facing is with the community contributions. By nature, contributions should be cross platform, and if not then at least not break the functionality of another target platform. Following this has proven to be very difficult thus leading to rejection of many submissions to improve Qt Purchasing API. This in turn makes for unhappy contributors, and Qt missing the needed feature.


I propose to exclude Qt Purchasing from Qt 6, and instead move the underlying use cases forward as examples, which has the following advantages:

· The examples would be easily copy-pasted, improved, obfuscated, and more secure.

· They can demonstrate how to use purchasing capabilities for different platforms with their native purchasing APIs (e.g. Android, iOS, WinRT).

· They can act as good examples of how Qt users can interact with more advanced platform-specific and native APIs that the core Qt doesn't cover.

· Modifications and contributions would be much easier added to an example than to a module which has more restriction such as feature-freezes.

· OS-specific features could be added and demonstrated if one feature is available in one OS and not the others. Updates related to this are tracked under the ticket QTBUG-82847.


References:

[1] https://developer.android.com/google/play/billing/billing_library_overview#Verify-purchase-device


Eskil Abrahamsen Blomfeldt
Senior Manager, Graphics

The Qt Company
Sandakerveien 116
0484 Oslo, Norway
eskil.abrahamsen-blomfeldt at qt.io
http://qt.io
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20200610/7b8ffc9e/attachment.html>


More information about the Development mailing list