我必须为第三方开发库。该库必须是安全的,以便只有拥有凭据的各方才能使用它。
我的方向是,我将提供第三方应用程序必须输入的API密钥才能使库工作。
我是否有可能对Cocoapod进行某种锁定?或者是针对此类问题的框架更好的解决方案?
有没有人有任何其他解决方案/建议?
答案 0 :(得分:1)
如果你详细说明你想要实现什么以及这个库执行什么类型的任务会更好,也许举一些例子。如果我理解正确,您需要阻止那些没有为服务付费的人使用图书馆。
如果库是某些Web服务的客户端,那么关键方法就可以了。在这种情况下,您应该拥有API密钥来保护API本身,因此客户端库只会将此密钥转发给Web服务。这种方法广泛用于许多客户端库中。
如果图书馆仅在本地工作(例如,它执行一些科学计算/计算机视觉/等),那么您可以将已编译的图书馆和许可证发放给已经付费的人。当然,您可以使用密钥保护它,但它不太有用,因为密钥可能会在本地验证,因此很容易受到损害或逆向工程。因此,唯一的好方法是将图书馆分发给那些购买/请求试用的人,并强制他们获得限制图书馆使用的许可。
修改强>
如果是" Cocoapod"你的意思是"分发为源代码"并通过" Framework"你的意思是"分发为二进制",然后它取决于你在库中做了什么。如果它只是连接到端点和编组数据(例如解析),您可以只分发源版本,因为没有"技术诀窍"那个。另一方面,如果除了联系API之外还有与业务相关且具体的事情,请使用闭源分发(二进制)。
如果出现新的目标体系结构,则源分发有一个好处,您不必重新编译它。它也更容易通过CocoaPods进行分发,您的图书馆用户会更喜欢它(出于各种原因)。