在运行时检查“Release Build”

时间:2012-09-13 12:58:23

标签: iphone objective-c ios xcode

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

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

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

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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