如何在iPhone应用程序中嵌入GPL组件?

时间:2009-08-22 06:33:22

标签: iphone licensing gpl

我想在iPhone应用程序中使用GPL组件,而不是。它是一个独立的独立组件,所以在任何其他平台上,我都会将它编译为一个程序,并在需要时用一些参数生成它。

但如果我想在Appstore上发布我的应用程序,我必须遵守iPhone SDK的这一部分:

  

3.3.2应用程序本身可能无法安装或启动其他可执行文件   任何方式的代码,包括没有   通过使用a的限制   插件架构,调用其他   框架,其他API或其他。   不能下载解释代码   或用于应用程序,除了   由...解释和运行的代码   Apple的Documented API和内置   解释器(多个)。

根据我的理解,似乎Apple禁止我做我想做的事。

是否有任何技术和/或法律解决方案可以在iPhone应用程序中嵌入(独立)GPL组件,而无需使用GPL许可证授权整个应用程序。

注意:此问题不是关于GPL许可证是否与AppStore规则兼容asked elsewhere。我认为是。

3 个答案:

答案 0 :(得分:4)

你应该要求该组件的作者在不同条件下向你授权,也许是为了换取真钱。

当作者选择GPL作为该组件时,他可能已经准确地使您在您的应用程序中使用GPL。

答案 1 :(得分:3)

您不能生成单独的进程或加载插件,这意味着在您的应用程序中包含某些内容的唯一方法是静态链接它,在GPL代码的情况下,需要您将GPL生成的派生作品。这是GPL的意图,无论好坏。

暂且不说:

  

在任何其他平台上,我会把它编译成一个程序,然后用一些参数生成它   我需要它。

实际上,根据作者的意图,

可能是违反GPL的行为。通常,明确地将一些GPL组件与自定义接口包装起来以使其不受二进制影响仍会导致单个“派生工作”。当然,根据我的知识,这实际上并没有在法庭上进行过测试,而且GPLv2中派生作品的概念在法律上有些含糊不清。

答案 2 :(得分:0)

在iPhone上,您无法混合封闭源代码和GPL代码,因为所有应用程序都是自包含的。除了应用程序之外,您不能以任何其他方式使用包含的GPL可执行文件。

由于您已经计划使用某些进程间通信来使用GPL模块而不进行链接,因此您可以将GPL部分放在服务器上并通过Internet访问它。我知道这是一个很大的开销,并且不能很好地扩展,但它是我能想到的唯一解决方案。