如何限制任何开发人员使用我创建的静态库?



我在iPhone sdk中创建了一个静态库,我担心如果我向正在使用静态库的任何人提供代码,那么任何人都可以使用静态库。那么在他们获得许可之前,有没有办法通过使用库来限制他们?我对授权任何库都是新手

这是一个必须通过法律手段解决的问题,而不是通过任何技术解决方案。

确保只把图书馆给你信任的人,如果需要的话,让他们签署一份不传播它的协议。

也问问你自己是否值得这么麻烦。你的代码是如此独特,以至于他们无法在其他地方找到它,或者在几天内自己复制它,仅使用Google和stackoverflow ?

正如@PeyloW所说,

这是一个必须通过法律解决的问题方法,不是通过任何技术解决方案。

但是有一些简单的方法来"阻止代码":你可以创建一个RAR或ZIP存档,用密码加密,在他们获得许可后,你可以告诉他们密码。

如果您想将许可证"绑定"到"开发人员的计算机",那么您只需要可以绑定的东西。例如,它可以是模拟器的UDID。

您可以为模拟器的UDID生成许可证,并且只限制模拟器的开发,同时允许不受限制地访问ARM代码(在设备上)

  • 你可以检查模拟器UDID
  • 检查license文件
  • 如果许可证文件允许UDID,运行
  • 如果没有,则显示消息等

为了开发的目的,每个人都需要模拟器,所以我想限制它对你来说已经足够了。

就我个人而言,我会创建一个新的静态库,检查代码覆盖率,并只复制消费它的应用程序使用的代码。或者换句话说,不要给别人超过你需要的。

然后,正如有人在评论中提到的那样,混淆调用。如果您的调用必须被破译,那么如果没有文档,您的库将毫无价值。很有可能,任何有能力破译你调用的意思的人,都已经对你的代码进行了80%的密室逆向工程。

除非你的客户同意,否则你不能在最后时刻强迫他们使用许可证。因此,即使您确实试图强迫他们使用您的库,在原始协议完好无损的情况下这样做也可能无效。我会在你的时间值得的范围内进行损害控制,并将其作为一种学习经验。从现在起5个月后,您可能会将静态库重构为更好的东西。下次,你要把这一点写进你的协议里。

如果您提供静态库,则没有人可以取回代码。

您是否也对使用您的静态库的其他人有保留?

最新更新