实施30天的时间试验

svi*_*tus 46 macos cocoa licensing

对于独立Mac开发者的问题:

我如何以非邪恶的方式实施30天的时间试验?将计数器放在prefs中是不可取的,因为每月擦除一次prefs对普通用户来说不是问题.将计数器放在隐藏文件的某个地方听起来有点狡猾 - 作为一个用户,我讨厌当应用程序将随机文件洒在我的硬盘上时.有任何想法吗?

Bar*_*ark 60

这个问题在cocoa-dev邮件列表中反复出现,并且共识的答案始终是最简单的事情.确定的黑客将破坏除了最过度设计的解决方案之外的所有解决方案.而且他们不太可能为软件付费.寻求80/20解决方案:简单的解决方案,20%的努力获得80%的效果.在这种情况下,将内容放在〜/ Library/Application Support/your.app.com /中.如果你想稍微混淆一些东西,你可能会把文件命名为无辜的东西.使用用户默认值也很容易.

无论您做什么,都不要使用MAC地址或其他硬件ID.拥有网络主目录的用户(例如在共享实验室环境中)会讨厌您.使用硬件ID只是邪恶的.

如果有人爱你的程序太多,以至于他们愿意打破你的审判限制,那就让他们吧.免费软件无需任何费用,他们的善意(也许可以推荐给其他人)非常值得.

最后,编写人们想要使用的软件并为其价值定价.如果你的价格是一个很好的价值,人们想要使用它,大多数人都会为此付出代价.

  • 你能解释为什么使用散列硬件ID是邪恶的吗? (4认同)

K S*_*ngh 24

我建议实施一些不那么具有侵入性的东西,可以避免普通用户在一个月内卸载或购买.

  1. 使用一系列特殊的试用序列号,其中包含有效期.您可以使用加密来存储序列号中的到期日期.
  2. 现在创建一个配置文件,以encypted格式存储数据并包含序列号.

另外在配置文件中实现这些功能.

  1. 每次用户启动应用程序时记下时间/日期.
  2. 请注意应用程序打开时间的持续时间.

通过记录时间戳,您可以避免这些变通方法:

  1. 如果用户撤消计算机日期,您就会知道该应用程序已在当天运行.假设用户在月份的1天和3天运行应用程序.现在30天后撤销日期并将其设置为月份的第2天.现在通过配置文件,你会知道应用程序已经在1和3上运行,因此用户已经搞砸了计算机上的日期.
  2. 假设每次用户通过首先将日期设置为该月的第5天来启动您的应用程序.通过记录您的应用程序运行时间,您会看到如果一天中的总小时数超过24,那么用户就是在愚弄.

确保您的应用程序在没有配置文件的情况下运行.因此,基本上您将加密的序列号发送到文件中,或者输入序列号后,您可以创建文件.由于序列号已经到期,用户也无法重复使用序列号.

我不会建议互联网方式,因为当应用程序每次尝试连接到服务器时,人们都会生气.此外,您可能会怀疑您是否尝试将某些用户的个人数据发送到您的服务器.

有一件事我想说:无论你使用的反盗版技术多么强大,都有人必须打破它.你没有为那些人制作你的应用程序.您正在为希望购买软件并愿意购买软件的人制作应用程序.因此,在试用期间使您的应用程序过于干扰,在不失去真正客户的情况下进行反盗版.一个想法也说,如果你的软件破裂,这意味着它也越来越受欢迎.意见可能会有所不同,并且不想偏离这些问题.


Chr*_*cke 11

考虑一下.您的软件有多少潜在用户,只是在接下来的30天内坚定地使用它?

我怀疑更为正常的情况是:用户遇到一个新的软件包,解决了他们的问题像lifehacker.com网站.软件下载,短暂播放,然后放在一边.也许它的MP3翻录软件,他们当时没有任何CD翻录.或者那天他们只是忙碌,但他们会尽快回顾那个软件.

30天过去了.可能更多.只有那时他们买了一张CD,遇到某种"问题"并记住,'啊哈,那是我下载的试用版!我又把它放在哪里了?没关系.没有被使用,'试验'已经超时.

我无法计算那些陷入困境的软件工具的数量.在推荐给我的那一天,当我看到对生命骇客进行积极评价的那一天,从来没有一天我真的需要 - 甚至是时间 - 来使用/分析我下载和安装的程序.


luc*_*ius 7

软件在30个日历日后过期是不好的,因为如果有人下载它,运行一次,然后决定他们将在一个月后评估它?下一次他们推出它,一个月后,它会说它已经过期了.

我将限制为14次发布,或120分钟的使用.

至于实现,用户的Preferences文件夹中的文件(隐藏或不隐藏)具有模糊的名称,似乎是最好的方法.该文件不是随机放在硬盘驱动器上,但用户无法轻易找出要删除的文件.


And*_*nck 5

最不邪恶的方法是让用户在一个月后删除程序或支付费用;)

  • 不幸的是,用户不会坚持自己就是"邪恶的". (12认同)