如果通过AppStore分发,我是否需要保护我的桌面应用程序?

时间:2014-04-23 08:34:10

标签: macos desktop mac-app-store license-key

我制作了一个简单的桌面应用,我想通过AppStore销售。当然,我希望能够防止盗版。 AppStore是否提供任何保护?这个过程如何运作?

例如,是什么阻止了一个不诚实的人购买我的应用程序,然后将其上传到torrent并与他人分享。如果其他人下载我的应用程序,他们第一次尝试使用我的应用程序时会自动被要求进行身份检查(Apple ID和密码),从而阻止他们在合法购买时使用它。

如果这种身份检查没有自动发生,那么我是否需要在我的应用程序中添加一些要求进行身份检查的代码。如果是这样,我在哪里可以找到有关如何做到这一点的信息?

我不完全确定这个过程是如何运作的。有人可以对此有所了解吗?

4 个答案:

答案 0 :(得分:6)

每次将收据下载到捆绑包中时,Mac App Store都会将收据滑出。收据包含有关所用计算机(所谓的GUID)和登录App Store的用户的信息。

请在此处查看您应如何验证收据: https://developer.apple.com/library/mac/releasenotes/General/ValidateAppStoreReceipt/Introduction.html#//apple_ref/doc/uid/TP40010573

如果您按照文档中的说明实施GUID验证,则该应用将无法在任何其他计算机上运行。

同时检查代码的签名以确保它没有被篡改: Verifying app's signature by code

答案 1 :(得分:2)

从App Store下载时,您的应用程序包含收据。收据包含从App Store下载到此计算机上的证据以及应用程序的ID。 Apple网站上的某些地方有说明,告诉您如何验证收据以及如果验证失败该怎么办。

那就是说,你最好专注于编写人们真正想要购买的应用程序。盗版你的应用程序的人如果不能被盗版,就不会交钱。他们会没有它,选择一些免费的应用程序,或选择他们可以盗版的其他应用程序。

我非常确定您自己构建到应用程序中的任何复制保护都会被App Store拒绝。

答案 2 :(得分:2)

尽管我得到的答案很有帮助,但他们并没有提供我需要的答案。环顾四周,我从Laurent Etiemble找到了一个名为Receigen的软件,他网站上的常见问题解答(http://receigen.etiemble.com/faq.html)给出了我想要的答案。例如

什么是App Store收据验证?为什么需要它? 基本上,App Store收据是应用程序必须检查的内容,以确保副本是真实的并且可以运行。

如果我不查看App Store收据会怎样? 好吧,任何拥有您的应用程序副本的人都可以运行它,无论是否有适当的授权。

代码收据验证是否易于编写? 不,因为它需要深入了解密码学和安全编码技术。

Receigen生成的代码使我无法处理收据验证码也没有受到伤害。 Receigen负责这一部分,因此我可以专注于对我来说真正重要的事情:我的申请。

是的,这需要钱,但我个人非常乐意付钱,因为我发现这部分发展是繁琐,乏味和复杂的。

答案 3 :(得分:0)

TPInAppReceipt是一个很好的解决方案。

尝试了许多其他解决方案后,我可以轻松地添加本地收据验证: