web-dev-qa-db-ja.com

LinuxコンピューターでiOSアプリを開発できない技術的な理由はありますか?

LinuxコンピューターでOS Xアプリを開発できない理由を理解しましたが、LinuxでiPhoneおよびiPadアプリを開発できないという技術的な理由はありますか? iOSソースコードをiOS実行可能ファイルにコンパイルして、LinuxのiOSシミュレーターで実行したり、開発iOSデバイスにインストールしたりできないのはなぜですか?

XCode IDEがCocoaアプリケーションであるという理由だけですか?

Androidアプリはあらゆる種類のプラットフォームで開発できます。iOSでも同じことが言えない理由はわかりません。

23
dan

Mac OS Xは、契約上でのみ実行できますAppleハードウェア。iOSでは、Cocoaフレームワークが必要であり、Macにアクセスしてキーチェーンに署名する必要があります。OpenStepを使用してLinuxでObjective-Cを使用できますがライブラリでは、正しいCocoa APIライブラリがないため、開発したアプリケーションをiOSにプッシュすることはできません。また、完全な開発者アカウントでキーチェーンなしでジェイルブレイクされたデバイスにプッシュすることができます。公にダウンロードすれば、あなたはAppleのルールに従っている。

17
World Engineer

特別な技術的な理由はありませんが、開発者ツールAppleはMacでのみ実行できるため、変更を急いでいるとは思いません。

サードパーティの開発ツールに関しては、Appleは非常に公に嫌いであり、App Storeでの取得に対するAppleの絶対拒否権を考えると、開発に多大な開発時間を投資することは良い考えではありません。 /それらを使用します。

(開発ツールの1つ-iOSシミュレータ-isは、技術的な理由からMacOS Xに非常に強く結びついています。実際には、iOSと非常によく似たMacOS X APIの間の薄いラッパーです。別のOSで実行するのは非常に困難です。最初からやり直す必要があり、おそらくAndroidエミュレータ)のように遅くて恐ろしい犬になるでしょう。

17
grahamparks

それはあなたが「技術的理由」で何を意味するかによる

厳密に言えば、iOSアプリをLinuxで開発できなかったという技術的な理由はないと思います。 Appleまたは企業家/才能のあるハッカーのグループ)が、そのためのツールチェーン(コンパイラー、おそらくIDE、電話で取得するためのもの)を作成するためには、何らかのエンティティが必要です。

したがって、「技術的な理由」によって「Macintoshで不可能であり、別のプラットフォームでは存在し得ない特別な何か」を意味するのであれば、いいえ、それはないと思います。たとえば、Macintoshにはこれに必要な特別なチップはありません。

「技術的な理由」で「今日、私がそれを行うことができない何か」を意味する場合、はい、Linuxには署名されたコードビット全体が存在せず、Apple移植しない限り)それが球技です。

8
Tom Kidd

他のプラットフォームでiOS用に開発できると言っておくべきだと思いますが、最終的なアプリケーションを構築できないだけですそれらについて。

これは、OS Xの外部でビルドできない理由として認められている回答で説明されていますが、他のプラットフォームでiOSアプリを作成できる開発ツールはたくさんあります。

これを可能にする私が使用したいくつかの開発ツール:

  • Qt Framework (C++およびQml):アプリケーションはWindowsまたはLinuxで記述でき、iOSアプリケーションはOS XのXCodeで構築されます。

  • nity3D (C#、UnityScript、およびBoo):Windowsで開発し、XCodeプロジェクトを生成するいずれかのプラットフォームでiOSを構築できます。これにより、他のObjective-Cコードとのさらなる統合も可能になります。

  • Xamarin (C#):Windows(および私はLinux)で開発し、OS Xマシンをビルドホストとして使用できます。

  • Kivy (Python):XCodeプロジェクトも生成します。

そして、特にAppceleratorのようなハイブリッドおよびモバイルWebアプリフレームワークを検討し始めると、これらのような多くのプロジェクトを見つけることができます。

4
Selali Adobor

LinuxでiOSアプリケーションを開発できないという技術的な理由はまったくありません。実際、Delphi XEのWindowsではすでに発生しています。そこで、完全にWindowsでiOSアプリを開発できます。最後に必要なのは、アプリに署名する必要があることだけです。これはMacでのみ実行できます。

0
Pieter B

Xcodeが他のシステムでのiOSアプリの開発を許可しないという技術的な理由があります。

iOSは多くの点でOS Xに似ています。多くのフレームワークは同一であるか、非常に似ています。 iOSシミュレーターは、それを利用して非常に高速なテスト環境を提供します。 Xcodeがアプリをコンパイルしてシミュレーターで実行すると、ほとんどがOS Xフレームワークにサンクダウンするフレームワークにリンクするx86バイナリが作成されます。 Macでネイティブに実行されるデバッグビルドが作成され、優れたパフォーマンスが得られます。

Androidを見ると、プラットフォームに依存しないapkが作成され、1つのAndroidエミュレータまたは別のエミュレータでエミュレートされます。これにより、全体を実行する仮想マシンが実行されますAndroidデバッグできるスタックがあります。他のエミュレータより高速なエミュレータもありますが、すべてエミュレータよりも低速ですが、利点はクロスプラットフォームであるということです。

Appleを使用してiOSアプリを他のシステムで構築できるようにするには、フレームワークをそれらのOSに移植してシミュレーターを作成するか、エミュレーターを構築する必要があります。それらの一部は、新しい機能の構築に時間を費やす作業のチャンクになります。

0
Alan Shutko

Linux上のiOS用のアプリケーションに署名することはできないため、承認された方法でそれらを配布できますが、Theosを使用してLinuxで(同じAPIで)開発できます。これは脱獄コミュニティがiOS用のアプリを開発するために使用するツールチェーンであり、クロスプラットフォームです。 iOSデバイスがジェイルブレイクされている場合、コンパイルされたアプリケーションをlibimobiledeviceを介してデバイスにプッシュできると思いますが、私が間違っていれば誰かが私を修正するかもしれません。

その他の情報: http://iphonedevwiki.net/index.php/Theos

翌日くらいにやってみるつもりですので、最新情報をお伝えします。

0
sammoore