如果我想将一个框架库出售给那么我怎样才能将许可证放到它上面以便它不能被iOS / iPhone转让。
我的想法很少:
任何信息都会有所帮助。 问候。
答案 0 :(得分:5)
出于这个答案的目的,我将跳过有关如何制作框架的部分。有很多帖子可以解释这一部分。
许可框架的业务逻辑比实际实施困难得多。你应该先为自己回答几个问题:
如果您可以为每个应用程序构建许可证模型,那么您将最容易执行许可证。每个应用都需要一个解锁代码,该代码特定于应用包名称。如果捆绑包名称不匹配,则密钥不起作用,并强制执行许可证。
每位开发人员的许可证有点琐碎。通常,您必须依赖购买应用程序的人的诚实。我不知道有任何好的机制来强制执行每个开发人员许可证。
每个用户的许可,因为您的问题似乎是针对性的,因此您可以使用更广泛的机制。最基本的是在合同中强制执行参数。大多数合同都有月度或季度报告标准。这会给您的客户带来负担,让他们在添加新客户端时保持最新状态。如果您针对专业开发人员定位框架,这可能是一个足够准确的机制。
如果您的目标是入门级开发人员,那么很可能会从地图中删除,如果您想强制执行许可,则必须使用更严格的机制。他们都需要Web服务来管理您的许可证。
您的代码需要返回到Web服务并提供安装标识符,例如[UIDevice -identifierForVendor]
以及Bundle Identifier。这将准确计算您的图书馆的安装数量以及使用者的数量。
此时,您决定如何执行许可。如果您对用户有严格的限制(我 NOT 建议),如果已超出应用包的许可用户数,您可以拒绝解锁您的库。如果您有一个软限制,我也 NOT 建议,您允许每个人始终解锁,然后追踪应用程序供应商超过其许可用户数,或者可能根本没有许可。
通常适当的方法是使用硬限制和软限制的组合。该应用必须至少每14天向网络服务报告一次,以便离线使用。如果库未在该窗口中报告,则它将停止工作。 Web服务决定是否仅根据应用程序包标识符解锁库。如果特定捆绑包的许可证超过了席位数,则通知他们并给他们一个窗口(可能是90天)以购买更多许可证。如果它们拒绝,则阻止该Bundle Identifier。然后,您的客户可以从捆绑包中删除您的框架或协商新的许可证。
这一切的不利因素都需要资金和开发时间。在大多数情况下,通过许可代码可以获得的资金超过了构建和维护此类系统所需的工作量。如果您有1个用户或1,000,000个用户,后端的维护和维护成本几乎相同。在走这条路之前,请确保有足够的用户来证明工作量和费用。