web-dev-qa-db-ja.com

App StoreはQTライブラリLGPLv3にリンクされたQtアプリを受け入れますか

App StoreにQt Quick Controlsアプリケーションを送信する方法はありません

app Storeルールに違反せずにLGPLv3ライセンスの下で?

動的にリンクされたバージョンのQtライブラリを使用して、iOSストアにアプリをデプロイします。

私はすべてのフォーラムで答えを見つけようとしましたが、非常に難しいようです。

どんな提案でも大歓迎です。

前もって感謝します。

22
strstr

App Storeは、どのライセンスを使用してもかまいません。気にするのは、アプリケーションのユーザーとライブラリの作成者です。 LGPLv3ライセンスの主なポイントは、エンドユーザーがライブラリを独自の変更されたバージョンに置き換える可能性を持っている必要があることです。これは理解するのに非常に重要です、動的/静的/他のすべてがただ気を散らすだけです。

Qtに移りましょう。主要なデスクトップ(Windows、OSX、Linux)およびモバイル(iOS、Android)オペレーティングシステムのLGPLv3ライセンスで利用できます。アプリケーションを開発していて、ソースコードを閉じたままにしたいとします。デスクトップでは、Qtライブラリに動的にリンクできます。エンドユーザーがアプリケーションをインストールすると、次の方法でQtライブラリを置き換えることができます。

  1. 独自のバージョンのQtライブラリをコンパイルする
  2. アプリケーションがインストールされている場所に移動します
  3. アプリケーションに同梱されていたオリジナルのQtライブラリを独自の修正バージョンで置き換えます

簡単そうに見えますか? LGPLv3の主な目標は達成されました。ユーザーはライブラリを置き換えることができます。

Androidを始めとするモバイルプラットフォームへの移行。 Qtライブラリーに動的にリンクしても、小さな問題が発生します。 Androidであるため、ユーザーはC:/Program Files/YourAppに移動してQtライブラリを置き換えることができません。応援は、すべてのデバイスで機能するわけではないため(そして合法ではない可能性があるため)、オプションではありません。 LGPLv3の主な目的は、ユーザーがライブラリを置き換えて、変更したバージョンのアプリケーションをデバイスで実行できるようにすることです。

解決?アプリケーションをインストールしたすべてのユーザーに.apkファイルを提供し、次の方法の詳細な手順を提供します。

  1. .apkファイルを解凍します
  2. Qtライブラリを置き換える
  3. 新しい.apkにZipalign/pack/signtool
  4. 変更されたQtライブラリを使用して.apkをインストールする

IOSについて話しましょう。静的リンクのため、iOSでLGPLv3を使用することはできないと多くの人が言います。違う。繰り返しになりますが、エンドユーザーにQtライブラリを置き換える可能性を与えるだけです。どうやって?エンドユーザーが再リンクするためのオブジェクトファイルを提供します。さらに良いことには、すべてのアプリケーションコードとリソースを、iOSの静的ライブラリアーカイブ(技術的にはすべてのオブジェクトファイルを連結したもの)でコンパイルする個別のQt Quickプラグインに配置します。次に、アプリケーションをインストールしたすべてのユーザーに対して、Qtライブラリを置き換える方法に関する指示を提供する必要があります。

  1. Webサイトからプロジェクトファイルとオブジェクトファイルをダウンロードする
  2. Apple WebサイトからXCodeおよび開発者ツールをダウンロードします
  3. Qtライブラリを置き換える
  4. デバイスにアプリケーションをデプロイする

これまでは、デバイスにデプロイするためにユーザーがApple開発者プログラムを登録する必要があったため、これは不可能でした。しかし、これはもう当てはまりません。 無料のApple IDアカウント を使用してデバイス上のアプリ

エンドユーザーの権利は保護されています。 Qtライブラリを置き換えることができます。必要な手順を必ず実行してください。

  1. アプリケーションでQtライブラリを使用すること、およびLGPLv3ライセンスでそれらを使用することについて言及すること。 LGPLv3 linceseへのリンクを提供します。
  2. Qtライブラリを置き換える設定が機能することを確認します。クリーンな仮想マシンをセットアップし、すべてを段階的に実行します。エンドユーザー向けに文書化します。
  3. アプリケーションをダウンロードしたユーザーがQtライブラリを置き換えたい場合は、それらを実行できるようにすべてを提供します。

実際、私は誰も気にしないと思います。ただし、万が一に備えて準備しておく必要があります。 QtフォーラムでQt LGPLv3を使用することを悲鳴を上げないでください。ただし、アプリケーションの「About」画面のどこかにそれが表示されていることを確認してください。 Qtを使用しているかどうかに関係なく、Qt企業はApp Storeからすべてのアプリケーションをスキャンするためのリソースを持っていません。あなたがゼロに近い小さな利益であれば、彼らはあなたに触れません。彼らにはもっと重要なことがある。

しかし、LGPLの問題に関してQtで作業している人々からまったく助けが得られないのは非常に残念です。ほとんどの場合、すべての開発者は「IANAL、法務部に連絡してください」と回答するように指示されています。法務部が教えてくれます-私たちの商用ライセンスを購入してください、それが唯一の選択肢です。 Qt Webサイトで、LGPLの 義務を見つけることができます 。私は驚くことではありません。このページに静的リンクと再リンク用のオブジェクトファイルを提供することについての言葉はありません。 Qtの会社は、誰にもそれが可能であることを伝えないことを好んでいます。

私の観点から見ると、LGPLはソースコードを公開せずに多くのアプリケーションがQtを使用できるようにする大きな一歩であり、Qtに大きな人気をもたらしました。言うまでもなく、Nokiaは最初にQt on Mobile(Symbian、次にMeeGo)のスポンサーとなった。

MeeGoとBlackberryについても考えると、Qtを使用するクローズドソースのモバイルアプリを開発し、それぞれのアプリストアで公開しても問題はありませんでした。商用ライセンスは必要ありません。

更新:これは以前に行われました。 LGPLは静的リンクとApp Storeで可能です。 https://news.ycombinator.com/item?id=4302517

質問がトピック外としてクローズされた場合は、ここに回答をコピーしました -5-10-0-to-build-a-closed-source-application-requires-ope/6495#6495

55
psyched