4

我正在为我开发的组件创建一个 .framework(或静态库),并且我想将其出售给第三方。

我计划添加一些代码来保护框架免遭未经授权的重复使用、重新分发或转售。

我认为实现这一点的一个好方法是要求购买者告诉我将使用框架的应用程序的捆绑 ID 是什么,将其作为 NSString 属性保存在框架中,并创建一个在运行时检查是否使用框架的应用程序的捆绑 ID 是否匹配。

但是,我还想免费试用该框架。因此,我只想在包含应用程序在发布模式下编译时启用捆绑 ID 检查,或者当应用程序在最终用户设备上运行时,在开发沙箱之外。

当然,我不能使用任何依赖于项目文件中设置的变量或宏的方法,因为它们太容易被利用。我需要在运行时进行......并且无需购买者采取任何行动。

有没有办法在运行时检查应用程序是否在开发人员沙箱中运行?或者,如果一个应用程序是使用发布构建配置文件构建的?

谢谢!

4

1 回答 1

1

过去,我在免费评估但不能免费部署组件的情况下实现了一个简单的定时炸弹到期。该库将在某个日期 X 之前运行,然后停止工作。用户只需重新下载最新的位以继续评估。一个付费订单,一个没有定时炸弹的下载链接或一个带有数字签名许可证的许可证文件一起禁用了定时炸弹逻辑。依赖运行时环境特性充其量是脆弱的。

于 2012-09-13T16:52:26.807 回答