这些限制都来自于用户系统上的任何内容,用户都可以修改.所以:
>聪明的cheapskates可能会改变你的应用程序的可执行文件,以取消或以其他方式击败你的任何支票.
>你必须在某个地方存储使用的时间(或者,更懒惰但不是用户友好的,他们开始使用你的应用程序的日期).无论您在何处存储它,用户都必须能够更改它(因为您的应用程序以它们的形式运行),这意味着如果他们找到它,他们可以重置时钟.
>如果你在沙盒中运行是不可能的,除非你将上述时间跟踪数据存储在用户默认值或钥匙串中,其中任何一个都可能是明显的,或者请求临时例外权利以便在任何地方写入在文件系统上.时间限制试验无论如何都不能在App Store中,但如果在未来版本的Mac OS X中需要App Store或沙盒,那么你的时间限制将会中断,我们只能希望它不会阻止用户完全使用您的应用程序.
>还有处理付款的问题.一种方法是在App Store中销售应用程序,而不使用任何试用执行代码,并自行分发一个单独的构建,始终强制执行时间限制.如果您自己处理付款,则需要在用户的系统上存储用户许可证的记录,并且需要检查该许可证.然后,这变得容易受到同样的问题:用户可能伪造许可证或“借用”(例如,从warez站点下载)其他人的.
当然,好处是用户有一定的时间免费试用该应用程序,而不必咳钱,所以在那段时间结束时(如果你的应用程序很好并满足他们的需求),他们’会更有可能购买.
在试用期结束时,您可以选择发生的情况:
>完全锁定用户的应用程序.
>剪切功能.橡果这样做.
>让他们打开文件,但不保存或打印. (你可以阻止截图,但是好运处理BUG报告.)
>让他们保存或(如果适用)打印,但以某种方式降低部分或全部文档.对于视觉创作,例如图像,水印可以起作用.对于音频,您可以将采样率限制为20 kHz或更低的不愉快. (这里有一种情况是拥有你自己专有的格式,你总是无损地处理,只会降低对常见格式的输出,如TIFF,JFIF或aifF.)Fission这样做.
>唠叨他们. (可与上述任何一项结合使用.)
>加入他们并延迟用户解雇它的能力.您甚至可以在用户无需付费的情况下延长延迟时间.
试用期的一个很好的替代方案是使用具有较少功能(或广告)的单独“免费”版本.这在两个应用程序商店中尤为常见.
另一个考虑因素是试用期是使用天数还是首次使用后的天数.后者更容易实现,因为您只记录首次使用的日期并进行减法.前者更加用户友好,因为它不会惩罚用户启动应用程序一次,玩它五分钟,并在31天后回到它进行真正的试用.
您还可以对启动次数实施限制.它实现起来就像首次使用时一样简单,但不会仅仅使用应用程序进行一次惩罚.
有些用户不会付钱.有些用户几乎可以做任何不付钱的事.
所以你需要取得平衡.你需要提供一个基本的难度级别,以便最懒惰的cheapskates不能简单地默认写入com.example.yourapp DaysSinceFirstUse -int 0并继续永远使用你的应用程序,同时不会让你的应用程序如此繁重(尝试更少)他们没有.
所以这里有一些不做的事情:
>尝试在其许可证(在购买时输入)上的用户名称与其帐户或通讯簿中的名称之间强制执行相同的 *** 作.有十几种不同的方式来写任何名字,有些人有多个名字(通过婚姻,别名,法律名称变更,多种语言,星际迷航等等),所以这个或类似的东西是伪造的检查将挫败更多合法用户而不是劝阻海盗.
>保留用户的数据人质.请参阅我的上述观点,了解您始终无损处理的专有格式的优点.如果您在试用期间总是降低输出,请在应用程序的启动时“在这是一个试用版”对话框中提前清除.
>需要互联网连接.不是每个人都有一个(可以连接到任意服务器),并不是每个人都有一个.向游戏行业学习:不要疏远您的用户.
>安装在后台运行和/或与您的应用程序位于不同位置的任何类型的版权执法软件.用户会因此而讨厌你.
至于如何做,这是我的建议:
>实施“实际使用日期”检查.这可能是一个卖点.当一项试验明确表示它使用这种检查时,它会让我感到温暖.
>我会说它存放几个小时.启动时,从您存储的任何位置获取当前的小时数.添加两个小时并将其写回(因此用户无法强制退出您的应用以打败此功能).退出时,将启动后的实际小时数添加到原始读取的数字,然后将修改后的数字写回.
>将其存储在Application Support中的不可见文件中.加密它(再次,你想打败偶然的盗版),但不要浪费太多时间来防止它.请记住,你的应用程序必须包含加密它(跟踪)和解密(执行检查)的所有内容,因此无论你做什么,一个足够坚定(和受过教育)的cheapskate都可以打破这个.
>启动时,从您存储的任何地方获取当前的小时数,并测试它是否超出限制. (如果你采取我的添加 – 两小时 – 右边的建议,在你测试超过限制后这样做.)30天是30×24 = 720小时.如果超过限制,请制定试用过期的措施.
>如果您自己销售软件,请对许可证文件使用对称公钥加密.我认为AquaticPrime就是这样做的.您使用私钥加密许可证,并在应用程序中分发公钥,该公钥使用公钥解密并检查许可证.几乎牢不可破.您通过电子邮件使用他们在购买时提供的电子邮件地址向客户发送许可文件. (告诉他们他们将通过电子邮件收到许可证,因此他们不会输入化妆地址.)
>如果这样做,请确保在试用结束前和结束后测试输入许可证.
>只有在没有许可证的情况下才进行试用.
>如果您可以在App Store中销售您的应用程序,我建议您这样做.如果您还想自己分发试用版,请在没有许可代码的情况下进行试用,因此只需无条件地进行试用检查.当然,App Store版本不需要(也不能进行)试用检查.
> Watch this.(注意:它早于Apple的App商店.)
以上是内存溢出为你收集整理的macos – 如何制作仅在有限时间内有效的可可演示应用程序?全部内容,希望文章能够帮你解决macos – 如何制作仅在有限时间内有效的可可演示应用程序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)