部署Python-Kivy应用程序

时间:2014-08-12 16:52:01

标签: python kivy setup-deployment

我已经在kivy中创建了一个桌面应用程序,并且能够使用pyinstaller生成单个可执行文件(.app)。现在我想在10天左右的试用期内将它交给客户。 问题是如何使试用版在安装10天后停止工作,即使用户在试用期结束后再次安装并重新安装也不行。 在试用版中提供部分功能不是一种选择。

Evnironment 使用Kivy的Mac OS和Python 2.7

2 个答案:

答案 0 :(得分:3)

您需要一个Web服务器和一个数据库才能使它正常工作。

  • 在数据库中创建一个许可证表。
  • 每次新客户为您的软件付费或请求试用时,您都会生成一个新的长期随机许可证,将其插入许可证表中,将其与客户的电子邮件地址相关联,然后通过电子邮件将其发送给客户。 / li>
  • 每次客户端尝试在其计算机上安装软件时,您都要求获得许可证,然后与网络服务器联系以确保该许可证存在并且仍然有效。

使用它们,人们仍然可以只创建多封电子邮件,从而潜在地获得无限数量的试用版。

然后,您可以尝试在该人的计算机中的某个地方(一个没人会寻找的地方)添加文件,然后将旧许可证粘贴在那里,以便该应用程序再次启动(即使是从新安装的应用程序)时,从那里阅读许可证,并在不要求许可证的情况下联系网络服务器。使用此方法,当您的应用程序使用过期的试用许可证与服务器联系时,您的服务器可以通过“许可证过期”信号进行答复,以让您的应用程序知道它必须立即申请非试用许可证,并且服务器仅应从现在开始接受来自该应用程序的非试用许可证。如果您的客户意识到您的应用程序正在从本地文件中获取此信息,则整个方法会中断,因为他们只能在找到本地文件后将其删除。

想到的另一种想法是将笔记本电脑的MAC地址(或您可以想到的任何其他唯一标识符)与一个许可证而不是电子邮件地址(以许可证创建方式)相关联时间(客户端要求进行试用时需要将其MAC地址发送给您)或安装时(您的应用可以检查正在运行的笔记本电脑的MAC地址)。

答案 1 :(得分:2)

1)您可以在应用程序时间戳记停止运行后对其进行硬编码,并检查每次运行是否此时间戳记大于time.time()。如果您有一个或几个客户,并且能够为每个客户制作具有不同日期的试用版,则此方法将起作用。

2)使用Platform / sdk获得https://cryptolens.io/之类的许可证或其他

3)编写您自己的解决方案,也许How to generate and validate a software license key?会为您提供帮助