我开发了一个android库,这是私人使用的。我想把它分发给我的一个客户,而且我必须防止客户重新分发包。我可以使用AWS codeArtifact或jfrog进行私有分发,但在这里不能阻止重新分发,因为客户端也可以将这些细节共享给其他人。所以我的问题是,我如何将它分发给我的多个客户,以防止我的库被重新分发?
在IAM策略中限制对客户端设备IP地址的访问似乎是唯一可能的方法。
这里可能有两种不同的选项,您可以根据自己的需求进行尝试。
- 您可以创建自己的公共maven存储库,自己托管,并提供密码保护,只与特定客户端共享凭据。那么其他人将无法使用您的图书馆
客户端将要求在其根gradle文件中包含您的存储库,如下所示。
maven{凭据{用户名'USER_NAME'密码"password"}url";http://repo.whateveryounameit.com/repo-maven"内容{//该存储库仅包含具有组"的工件;com.something."includeGroupByRegex";com.something.";}}}
- 另一个选项可能是引入一些API_KEY,并在库代码中检查该API密钥,如果不匹配,则通过一些运行时异常进行检查。然后只与特定的客户端共享您的API_KEY。尽管在这种情况下,如果客户端与其他人共享API_KEY,那么他们将能够使用您的库。这取决于您的客户使用您的库的许可证类型