哪些开源许可证与 Apple 的 iPhone 及其官方 App Store 兼容? [英] Which open source licenses are compatible with the Apple's iPhone and its official App Store ?

查看:35
本文介绍了哪些开源许可证与 Apple 的 iPhone 及其官方 App Store 兼容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个 iPhone 应用程序,我想使用 3rd 方库来实现其部分功能.我打算通过 App Store 销售它,我的代码不会开源.哪些开源许可允许在苹果自己的条件下制作衍生作品并发布它们?

I'm writing an iPhone app, and I would like to use a 3rd party library for part of its functionality. I intend on selling it through the App Store and my code will not be open sourced. Which open source licenses allow to make derivate works and publish them under apple's own conditions ?

推荐答案

In Short/TL;DR:

In Short/TL;DR:

LGPL 和应用程序商店有一些不兼容,这意味着您无权在支持 DRM 的应用程序商店或锁定的设备上分发 LGPL 代码.

The LGPL and application stores have a few incompatibilities which means that you do not have the rights to distribute LGPL code on DRM-enabled AppStores or locked devices.

如果您在其他更宽松的许可证(如 Apache 2 许可证、Microsoft 公共许可证或 MIT X11 许可证)下寻找库的替代实现,则最好.

It is best if you look for alternative implementations of the library under other laxer licenses like the Apache 2 License, the Microsoft Public License or the MIT X11 License.

更长:

LGPL 声明:

此要求可能与许可证相矛盾其他专有库的限制,通常不会伴随操作系统.这样的矛盾意味着你不能在一个可执行文件中同时使用它们和库分发.

It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

将 LGPL 代码与专有代码静态链接的权利来自 LGPL 第 6 节.除了授予的权利外,该部分还涉及您对代码下游接收者的要求.

The rights for statically linking LGPL code with proprietary code comes from section 6 of the LGPL. In addition to the rights granted that section deals with the requirements on your part towards downstream recipients of your code.

您应该详细阅读此部分.

You should read this section in detail.

要求用户付费才能进入程序并获取密钥证书、配置文件和工具以部署到设备的应用程序商店与 LGPL 直接矛盾.

Application Stores that require users to pay to enter the program and obtain key certificates, provisioning profiles and tools to deploy to the device are in direct contradiction with the LGPL.

LGPL 要求最终用户能够获取您的目标文件以及开源库(以及工具,请参阅下面的部分)并生成一些有效的代码.没有空间让下游接收者必须与 Apple、Microsoft、Amazon 或 Google 签订单独的协议才能在他自己的硬件上部署代码的工作版本.

The LGPL requires that the end user is able to fetch your object files plus the open source library (plus tools, see the section below) and produce some code that works. There is no room for having the downstream recipient have to enter a separate agreement with Apple, Microsoft, Amazon or Google to be able to deploy a working version of the code on his own hardware.

特别是本节是相关的:

您不能再强加任何对收件人行使此处授予的权利的限制.您不负责强制第三方遵守本许可证.

You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.

您不需要授予用户在 AppStore 上重新发布您的应用程序的权利,但您需要授予用户使用修改后的 LGPL 代码版本在他们自己的设备上部署您的应用程序的权利,因此任何开发者程序或需要额外付费才能部署的设备与 LGPL 冲突.

You do not need to give users the right to republish your application on an AppStore, but you need to give users the right to deploy your app with the modified version of the LGPL code on their own devices, so any developer program or device that requires extra payments to deploy is in conflict with the LGPL.

您必须确保生成的可执行文件的条款允许接收者更改 LGPL 代码并从中生成新的工作代码位.这在实践中意味着您需要分发程序的目标文件,以便第三方可以将您的应用程序与库的修改版本重新链接,可能修复错误,以某种方式改进它,或提供他们自己的功能.

You must ensure that the terms of the resulting executable allow the recipient to make changes to the LGPL code and produce a new working bits of code out of it. This in practice means that you need to distribute the object files of your program so that a third party can relink your application with a modified version of the library, possible to fix bugs, improve it in some way, or provide their own features.

您可以通过在您的网站上发布目标文件并提供一个项目以便第三方可以重新链接应用程序来避免这种情况.不这样做会撤销您对 LGPL 的许可.

You could get away with this by posting the object files in your web site and providing a project so third parties can relink the application. Not doing so revokes your license to the LGPL.

这是第 6 节的另一个要求.

This is another requirement from Section 6.

这可能与各种应用商店的条款直接冲突,但您需要与您使用的应用商店(Apple、Amazon、Android 或其他第三方)核对确切条款.

This might be in direct conflict with the terms of various application stores, but you need to check the exact terms with the application store you are using (Apple, Amazon, Android or other third parties).

作为 LGPL 代码要求的一部分,发送给下游用户的应用程序必须随附 LGPL 许可证,并在应用程序中显示任何版权声明的任何位置指向此许可证.一些应用商店将其发布在应用商店网站上,而其他应用商店可能拥有可执行文件本身的版权信息.

As part of the requirements for LGPL code, the application that is shipped to the downstream user must ship with the LGPL license and point to this license on any places of the application that display any copyright notices. Some application stores post this on the application store site, while others might have the copyright information on the executable itself.

这很容易遵守,你只需要在你的网站上分发 LGPL 代码的副本(许可证上有一些关于此的额外细节,关于你需要保持代码可用的时间长度).

This is very easy to abide by, you just need to distribute the copy of the LGPL code on your web site (there are some extra details about this on the license about the length of time you need to keep the code available).

LGPL 和在通过应用程序商店分发的应用程序中使用静态库的主要问题之一是要求您分发最终用户重建软件所需的工具和脚本.

One of the major problems with the LGPL and using static libraries in applications that are distributed through application stores is the requirement that you distribute the tools and scripts that are necessary for an end-user to rebuild the software.

对于某些嵌入式系统方案,您会要求嵌入式系统供应商向任何最终用户披露其开发人员工具和 API,这可能是不可能的.目前尚不清楚是否可以自由重新分发 iPhone 或 Windows SDK 之类的东西以履行本案中的义务,您可能需要与您的律师讨论并了解您对这些要求的曝光是否满意.

For some embedded system scenarios, you would require the embedded system vendor to disclose his developer tools and APIs to any end users and this might not be possible. It is not clear if something like the iPhone or Windows SDKs can be freely redistributed to fulfill the obligations in this case, you might want to discuss with your lawyers and find out how comfortable you are with the exposure of the requirements.

如果您绝对需要在应用商店或嵌入式系统中使用某些 LGPL 代码,您可以随时联系代码的原始作者,并要求他们根据不同的条款授予您代码的许可.

If you absolutely need to use some LGPL code in an appstore or an embedded system, you can always reach out to the original authors of the code and ask them to grant you a license to the code under different terms.

或者,您可以在其他更宽松的许可证(如 Apache 2 许可证、Microsoft 公共许可证或 MIT X11 许可证)下寻找库的替代实现.

Alternatively, you can look for alternative implementations of the library under other laxer licenses like the Apache 2 License, the Microsoft Public License or the MIT X11 License.

这篇关于哪些开源许可证与 Apple 的 iPhone 及其官方 App Store 兼容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆