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


23

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

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

どんな種類のプラットフォームでもAndroidアプリを開発できるようです。同じことがiOSにも当てはまらない理由はわかりません。


29
悲しいことに、この質問に対する答えは「いいえ、Appleはそう言っただけ」になると思います。
ジョンパーディ

11
「冒とく」の質問は終了しました;)
トルステンミュラー

1
ちなみに、「Mac Mini」マシンを入手できます。それは本当に素晴らしいマシンであることは言うまでもなく安いです。
シロン

2
@ 1982年の伝説:ファインマシンタイムマシンと間違え、Appleのボーイッシュな興奮と軽cont を同時に経験しました。
ジョンパーディ

@Jon Purdy Well Appleは「Time Machine」と「Time Capsule」を提供しています:)
Chiron

回答:


17

Mac OS Xは、契約上Appleハードウェアでのみ実行できます。iOSでは、Cocoaフレームワークが必要で、キーチェーンに署名するにはMacにアクセスできる必要があります。LinuxでOpenStepライブラリを使用してObjective-Cを使用することはできますが、正しいCocoa APIライブラリがないために開発したアプリケーションをiOSにプッシュすることはできません。アカウント、前述のアプリを販売したり、公開してもらうために、Appleのルールでプレイしてください。


17
「Mac OS XはAppleハードウェアでのみ合法的に実行できます」-健全な法制度でそれが当てはまる場合、私は非常に驚くでしょう。マイクロソフトが同じスタントを引き出そうとして、人々がそれを無視し、マイクロソフトが訴え、負けたため、ドイツで真実ではないという事実を知っます。
ヨルグW

4
より正確にするために、「契約上」に変更します。
世界エンジニア

3
契約の条件に違反すると、基本的にサポート権限が剥奪されます。Appleは優れた顧客サービスを提供したいと考えており、それを行う最も簡単な方法は、そもそも物事がうまくいかないスペースを制限することです。Apple以外のハードウェアでOSを実行している場合、自分で実行します。
ジョンパーディ

@JörgWMittagマイクロソフトはどのようにしてそれを試みましたか?そもそもMicrosoftがハードウェアを製造していることはまったく知りません。
ナディールサンパオリ14

4
@NadirSampaoli:ドイツでは、MicrosoftはPCビルダーに非常に安価なWindowsライセンスを販売しているため、OSがないPCやLinuxがバンドルされているPCと比較して、コストを大幅に増やすことなくWindowsをPCにバンドルできます。その目的は、これらのライセンスがPCにプリインストールされていることです。ただし、PCビルダーは、それらのライセンスを個別に販売できることに気付き、彼らが支払った金額に比べて莫大な利益を得ることができましたが、それでもマイクロソフトよりもはるかに安価です。マイクロソフトは、これらのライセンスはこれらのビルダーのPCでのみ使用できるという理由で訴えましたが、失われました。
ヨルグW

17

技術的な理由は特にありませんが、Appleが提供する開発者ツールはMacでのみ動作し、それらを変更しようと急いでいるとは思いません。

サードパーティの開発者ツールに関して、Appleは非常に公に嫌いであり、AppleがApp Storeで得られるものに対する絶対的な拒否権を与えられているので、それらを作成/使用するのにかなりの開発時間を費やすことは素晴らしい考えではありません。

(開発ツールの1つであるiOSシミュレーター、健全な技術的理由からMacOS X 非常に強く結びついています。知る限りでは、実際にはiOSと非常によく似たMacOS X APIの間の薄いラッパーです。 。最初からやり直さなければならず、おそらくAndroidエミュレータのように遅くて恐ろしいものになります)


8

「技術的理由」の意味に依存します

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

「技術的な理由」で「Macintoshにとって特別で、他のプラットフォームには存在できない可能性のある特別なもの」を意味する場合、そうではないと思います。たとえば、Macintoshにはこれに必要な特別なチップはありません。

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


4

他のプラットフォームでiOS向けに開発できると言ったほういいと思います。最終的なアプリケーションを構築することはできません。

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

これを可能にする、私が使用した開発ツールの一部:

  • Qtフレームワーク(C ++およびQml):アプリケーションはWindowsまたはLinuxで作成でき、iOSアプリケーションはOS XのXCodeでビルドされます。

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

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

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

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


0

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


0

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

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

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

AppleがiOSアプリを他のシステムでビルドできるようにするには、フレームワークをそれらのOSに移植してシミュレーターを作成するか、エミュレーターをビルドする必要があります。どちらも、新機能の構築に時間がかかる作業の塊になります。


0

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

詳細情報:http : //iphonedevwiki.net/index.php/Theos

翌日かそこらでこれを試してみるつもりで、アップデートを提供します。


1
アップデートしてください!
カイルストランド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.