静态库的许可系统

时间:2009-11-16 00:00:18

标签: iphone objective-c cocoa-touch xcode

我想为Cocoa Touch应用程序销售静态库,但希望保护它免受自由分发。有没有人试过这个或者对我可以构建的方案有什么建议来处理它?<​​/ p>

桌面世界的一个例子是供应商在购买库后向您发送许可证密钥。该密钥必须嵌入到您的应用程序中,这是库在运行时查找的内容。问题是任何人都可以在网上发布图书馆和密钥。

4 个答案:

答案 0 :(得分:9)

构建强大的快速密钥生成器算法,部分基于购买者捆绑标识符。当有人购买库时,他们会为您提供包标识符,并为您提供嵌入密钥。在运行时,读取包标识符和嵌​​入的密钥,通过算法运行它,看它是否匹配。

这有点好一点,因为如果有人来自其他人,他们就不太可能使用捆绑标识符 - 他们必须设置多个证书,开发者档案等。此外,合法购买可能不会非法重用库之间他/她自己的不同应用程序。

答案 1 :(得分:2)

好吧,我不打算尝试将受版权保护的库出售给其他开发人员。由于我们正在讨论iPhone应用程序,如果您怀疑某人未经授权使用您的代码,并且您可以证明它,您可以向Apple发送DMCA移除通知并将其从商店中取出。

答案 2 :(得分:0)

棘手。我想这取决于你想要坐在哪里的不便 - 安全范围。如果你想成为一个巨大的混蛋,你可以要求用你的工具构建的所有二进制文件被发送到你发布的web服务,这将根据二进制的哈希值为它们添加一个键。可能你最好遵循你目前的计划。是的,它可以发布在网上,但这只是你不得不采取的机会。最好不要将您的客户视为罪犯。跟踪您销售的密钥,如果您发现在线销售,则撤销其许可证。

答案 3 :(得分:0)

尝试这种方式: 您要求开发人员为您提供将使用您的库的应用程序的应用程序名称。 发送带有加密appname的库和内部许可证代码。

您的图书馆将在随机时间,appname和许可证中进行检查,然后在您的图书馆中检查访问互联网上的网站以验证该对。 如果没有匹配,您的库会要求应用程序退出。