2015-04-02 52 views
1

我今天看到了将大量代码移动到动态框架(这是iOS 8以后可能的)的优势,以简化进行应用程序扩展的过程。防止其他应用程序使用动态框架

框架构建完成后,它将捆绑在应用程序包中的Frameworks目录中,作为MyFramework.framework

然而,我有一个想法(当戴着锡箔帽子)。如何防止某人复制该框架,将其转储(假定为Objective-C),然后使用它包含的类和方法将其捆绑到自己的应用中?

这样做甚至可能吗?

回答

1

你不能阻止某人把你的框架,类转储它,或者只是采取公共标题和使用它们。例如,如果框架检测到由未知应用程序加载的内容,则可能会让您的生活更加艰难。

基本上你检查bundle id,如果它没有被那个白名单列出来,那么框架抛出一个异常,或者混淆东西,它会产生一个长调用堆栈的崩溃。

执行此操作的代码可以添加到一个或多个类的+加载方法中,也可以添加到实例方法中,您认为添加此类行为会有意义。

缺点是,你需要确保你开发的每个应用程序都被框架列入白名单,否则你会阻止你自己使用你的框架:)

+0

嗯,是的,想得一样多。我确实在+ load方法中尝试了一些东西,但从未调用过+加载。 – BytesGuy 2015-04-03 10:40:31

+0

你在使用定义+加载方法的类吗?我问这是因为当代码中第一次引用类时调用了+ load。 – Cristik 2015-04-03 10:46:45

+0

是的,这很奇怪。我在框架中添加了-all_load链接器标志,它似乎在应用程序启动时调用,只有这样才能使它调用+加载它似乎。 – BytesGuy 2015-04-03 10:48:21

相关问题