Ios 应用商店是否接受与Qt库LGPLv3链接的Qt应用

Ios 应用商店是否接受与Qt库LGPLv3链接的Qt应用,ios,qt,licensing,Ios,Qt,Licensing,有任何方法可以向应用商店提交Qt Quick Controls应用程序 在不违反应用商店规则的情况下使用LGPLv3许可证 我想做的是使用动态链接版本的Qt库在iOS应用商店上部署我的应用程序 我试图在每个论坛上找到答案,但似乎很难 非常感谢您的任何建议 提前感谢。应用商店不关心您使用哪个许可证。是应用程序的用户和库作者关心这个问题。LGPLv3许可证的要点是,最终用户必须能够用自己的修改版本替换库。理解这一点非常重要,动态/静态/其他一切都会分散注意力 让我们转到Qt。它在主要的桌面(Wind

有任何方法可以向应用商店提交Qt Quick Controls应用程序

在不违反应用商店规则的情况下使用LGPLv3许可证

我想做的是使用动态链接版本的Qt库在iOS应用商店上部署我的应用程序

我试图在每个论坛上找到答案,但似乎很难

非常感谢您的任何建议


提前感谢。

应用商店不关心您使用哪个许可证。是应用程序的用户和库作者关心这个问题。LGPLv3许可证的要点是,最终用户必须能够用自己的修改版本替换库。理解这一点非常重要,动态/静态/其他一切都会分散注意力

让我们转到Qt。它在主要的桌面(Windows、OSX、Linux)和移动(iOS、Android)操作系统上具有LGPLv3许可证。假设您开发了一个应用程序,并且希望关闭源代码。在桌面上,您可以动态链接到Qt库。当最终用户安装您的应用程序时,他们可以通过以下方式替换Qt库:

  • 编译自己版本的Qt库
  • 导航应用程序的安装位置
  • 将应用程序附带的原始Qt库替换为其自己的修改版本
  • 看起来很简单,对吧?LGPLv3的主要目标已经实现。用户可以替换库

    转向移动平台,从Android开始。即使您动态链接到Qt库,我们现在也有一个小问题。用户无法导航到
    C:/Program Files/YourApp
    并替换Qt库,因为它是Android。根不是一个选项,因为它不能在所有设备上工作(并且可能不合法)。请记住,LGPLv3的主要目标是让用户能够替换库并在其设备上运行应用程序的修改版本

    解决方案?向安装应用程序的每个用户提供.apk文件,并提供有关如何:

  • 解压缩.apk文件
  • 替换Qt库
  • Zipalign/pack/signtool到一个新的.apk
  • 使用修改过的Qt库安装.apk
  • 让我们来谈谈iOS。许多人说,由于静态链接,在iOS上使用LGPLv3是不可能的。错。同样,您只需要为最终用户提供替换Qt库的可能性。怎么用?为最终用户提供要重新链接的对象文件。或者更好的做法是,将所有应用程序代码和资源放在一个单独的Qt Quick插件中,该插件将编译到iOS的静态库存档(技术上只是将所有对象文件连接在一起)中。然后,对于安装您的应用程序的每个用户,您必须提供有关如何替换Qt库的说明:

  • 从您的网站下载项目文件和对象文件
  • 从苹果网站下载XCode和开发者工具
  • 替换Qt库
  • 将应用程序部署到您的设备
  • 在此之前,这是不可能的,因为为了在设备上部署,用户必须注册Apple Developer程序。但现在已经不是这样了

    最终用户权限受到保护。它们可以取代Qt库。只需确保您执行了必要的步骤:

  • 在应用程序中提到您使用Qt库,并提到您在LGPLv3许可证下使用它们。提供到LGPLv3 lincese的链接
  • 确保替换Qt库的设置正常工作。建立一个干净的虚拟机,一步一步地做每件事。为最终用户编制文档
  • 当下载您的应用程序的用户想要替换Qt库时,请向他们提供一切,以便他们可以这样做
  • 事实上,我认为没有人会在意。但你必须做好准备以防万一。不要尖叫你在Qt论坛上使用Qt LGPLv3,但要确保你在应用程序的“关于”屏幕的某个地方可以看到它。Qt公司没有资源扫描应用商店中的每个应用程序(无论是否使用Qt)。如果你是一个接近零利润的小公司,他们也不会碰你。他们有更重要的事情要做

    然而,看到在Qt工作的人在LGPL主题上完全没有帮助,这是非常令人失望的。很可能所有开发商都被要求回答“IANAL,请联系我们的法律部门”。法律部门会告诉你-购买我们的商业许可证,这是唯一的选择。在Qt网站上可以找到。我一点也不奇怪,在这个页面上没有关于静态链接和为重新链接提供对象文件的消息。Qt公司只是不愿意告诉任何人这是可能的

    在我看来,LGPL是一个巨大的进步,它使许多应用程序能够使用Qt,而不必公开它们的源代码,从而为Qt带来巨大的普及。更不用说诺基亚是第一个在手机上赞助Qt的人(先是Symbian,然后是MeeGo)

    同样考虑到MeeGo和Blackberry,开发使用Qt的封闭源代码移动应用并在各自的应用商店中发布它们也没有问题。不需要商业许可证

    更新: 这是以前做过的。LGPL可以通过静态链接和应用商店实现

    如果这个问题因离题而结束,我将答案复制到这里 是的,这是可能的

    您可以使用此Qt应用程序模板:

    在IOS上无法重新链接应用程序,因此它与LGPL V3.0不兼容(用户无法替换Qt库)

    但该模板在每次重建时都会生成一个可再发行的.zip Qt项目

    他们的整个私人项目都分布在一个编译过的.a库中,因此用户可以在Qt Creator中打开项目,重建他们的应用程序并将其加载到他们的ipad/iphone上,并且您的源代码保持受保护

    注意:如果您使用的是qtquick编译器,则必须将其重新链接到同一版本