web-dev-qa-db-ja.com

LinuxでiPhoneアプリの開発を始めましたか?

IPhoneアプリを開発したい場合は、Macを入手する必要があると聞いたことがあります。これは本当ですか?

Linuxを使ってiPhoneアプリを開発することは可能ですか?もしそうなら、私は何が必要で、どこで必要なツールをダウンロードしますか?

514
javac

異なる応答を提供するために、私はLinux上の仮想化(VMware)マシン上でOS XとXcodeを実行しています。 CPUはCore2Quad(Q8800)であり、そしてそれは完全に速いです。私はオンラインで構築済みのVMを見つけました。

それは実際に私をとても驚かせました - しかし私は全く問題を抱えていませんでした。

292
Chaos

これに対する答えは、iPhoneストアを通じて配布されるアプリを開発するかどうかによって異なります。あなたがそうでなくて、そして「脱獄」されたiPhone群衆のために開発することを気にしないならば - それはLinuxから開発することが可能です。

このチャップのページを見て、何をすべきかについての包括的な(少し複雑な場合)ガイドを探してください。

http://www.saurik.com/id/4

75
GodEater

これまでのところ本当のようです。アップルから入手可能な唯一のSDKは、MacOS環境のみを対象としています。私はそれに憤慨していますが、私は今iPhoneを開発するためだけにMacを購入することを検討しています。私は彼らがやっていることが本当に嫌いです、そして私は良いSDKがLinuxやWindowsのような他の環境のために出てくることを願っています。

これは、SDKに関する一般的な不満についての記事です。

iPhone SDKとフリーソフトウェア:違います

Appleが最近iPhone用のソフトウェア開発キット(SDK)をリリースしましたが、それを使ってオリジナルのオープンソースソフトウェアを移植または開発することを望んでいるのなら、そのニュースは良くありません。コードの署名と秘密保持の条件により、フリーソフトウェアは無駄になります。

SDK自体は無料でダウンロードできます。これを使用すると、プログラムを作成してソフトウェアシミュレータでそれらを実行できます。しかし、あなたが書いたソフトウェアを実際にリリースするには、iPhoneデベロッパプログラムに登録する必要があります。これは、SDKのダウンロードとは別のステップで、Appleの承認が必要です。

Macosユーザーだけが自分の電話用のプログラムを書くのに十分であると考えるのは彼らにとってかなりエリート主義だと思います、そしてあなたがあなたのものを公開したいならあなたが100ドルのライセンスを買う必要があるという事実は本当にそれを趣味のプログラマーにとってもっと難しくします。しかし、それがあなたがする必要があるならば、私は彼らのフープを飛び越えることを計画しています。私のiPhone上でいくつかのものを開発したいです。

25
stephenbayer

以前はこの問題を解決するための専用プロジェクトが使用されていました。 iphone-dev

Iphone-devプロジェクトの目標は、AppleのiPhoneやARM/Darwinプラットフォームをベースにした他の組み込み機器の開発を可能にするための、無料で携帯可能な高品質のツールチェーンを作成することです。

20
Johan Boulé

代替ツールチェーンに関しては、Saurikのサイトは有用だが、最新のファームウェア開発のために彼はiPhone自体の上に構築することを示し、あなたが必要なiPhoneファームウェアファイルをあなたのLinux環境にコピーする必要があるかもしれないことを示すのを避けている。不可能ではありませんが、特にコードに署名するために追加の作業が必要になるだけです(そこにはオープンな代替ソリューションもあります)。

また、より体系的にアプローチする他のガイド(同じツールチェーン用)もご覧ください。

アプリケーションをAppleに提出するときに問題が発生した場合に備えて、XCodeでの最終的なビルドとコードの署名とパッケージ化(他人​​のMacを借りることを意味する可能性があります)を行うことをお勧めします。別のツールチェーンを使用すると(少なくともMacでは)、アプリケーションの開発にXCode以外の他のIDEを使用し、再びシミュレータでの展開とテストにXCodeを使用する可能性が開かれます。

もちろん、XCodeの外部のコマンドラインからコード署名/証明書の生成を実行している場合は、実際のiPhoneに証明書をインストールしてそこでテストすることができます(証明書付きのiTunes経由でアプリをインストールする)。

12
dljava

私がLinux用にiPhone用の開発を行う唯一の方法は、VMwareをインストールし、仮想マシンでOS Xを実行することに取り組むことです。それによると、そうすることには「法的な」懸念がいくつかあります。 OS X Serverは仮想化することができると報告されていますが、開発ストーリーに関しては私にはわかりません。

あなたが本当に真剣であるならば、それは私が調査することです。

がんばろう。

7
Keith Elder

最終的にはiPhoneやiPadで自分自身を見つけることができるLinuxボックスにコードを書くことができるかもしれませんが、最終的にはコードをiPhoneにテストまたはデプロイするか、App Storeに送信するにはMacが必要になります。したがって、最終的にはMacが必要です。そのため、Appleが提供するすべてのツールを使用して、Mac上でも作業を行うことができます。 Monotouchなど、Xcode&Objective-Cに代わるものがありますが、これらもAppleのツールを利用しています。

LinuxではVMの中でOS Xを実行する作業もできます。しかし、OSXのコピーを購入したとしても、これはOSXの使用許諾契約を破ることになるでしょう - それはAppleのハードウェア上で動くことがライセンスされているだけなので。

あなたにこのニュースを知らせて申し訳ありません - iPhone/iPadのまわりの生態系は非常に厳しく管理されています。

編集:これに対する一つの大きな例外は、iPhone用のWebアプリを書くことです。 iPhone用の優れたWebアプリケーションがいくつかあります。これらはネイティブアプリケーションとほぼ同じユーザーエクスペリエンスと同じくらい優れています。しかし、私はあなたの質問をネイティブアプリ開発に関するものと解釈しました。ユーザーはWebアプリケーションを起動するためのアイコンを作成できますが、Webアプリケーションはまだ「セカンドクラス」の市民です。

5
iandotkelly

あなたは Tersus (オープンソース)を使うことができ、それはあなたがXcodeプロジェクトとしてアプリをエクスポートすることを可能にします。

5
Ofer Brandes

Rhodes というフレームワークがあります。

この概念はRuby on Railsに基づいており、あなたはあなたのモバイルアプリをRubyとHTMLで開発します、そしてあなたはあなたのコードをLinux環境で書くことができます。その後、 Rhohub にアカウントを作成し、( GitHub を使用して)コードを追加し、それをコンパイルすることができます。 iPhone、Blackberry、Android、Windows Mobile、およびSymbianの場合は、すべて同じコードです。 iPhone用のObjective-C、Android用のJavaなどでコーディングする必要はありません。あなたがする必要があるのは、それがiTunes(または同等の市場)で受け入れられるように、iPhoneアプリケーション(またはあなたが開発したいPhoneのもの)を作成するための規則に固執することだけです。

これにより、アプリをiTunesに追加することもできます。

しかし、私はエミュレータを見つけることができませんでした、それはあなたのアプリをテストするためにはiPhoneにそれを置く必要があることを意味します。これが使命です。

私はすべての携帯電話用のアプリを作成したいのでこのオプションを使用しています。私はすでにRuby on Railsを使用しています。 iPhone用のアプリを作成するだけの場合は、Macに投資してください。

お役に立てれば。

3
Theo Scholiadis

Cjackerによる iOS clangツールチェーンを使用して、Linux上でiOSアプリケーションを構築することに成功しました 。基本的にそれはあなたのlinuxディストリビューションからの上流のclangとllvmツール、Appleのリンカのlinuxポートと(xcodeプロジェクトをMakefileフォーマットに変換するような)ビルドプロセスを単純化するのを助けるいくつかの追加ツールから成ります。

インストールにはいくつかの手順が必要ですが、あなたはソフトウェア開発者なので、それに慣れるでしょう。私はDebian 7(Wheezy)の最新のhowtoをオンラインで投稿しました。

http://www.ninthavenue.jp.h/how-to-build-an-ios-toolchain-for-linux-debian-7

さもなければあなたはもう少し古い一般的な指示に行きたがっています:

http://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en

がんばろう。

3
Roger Keays

あなたはそれのためにMacを入手する必要があります。 Windows上でi Phoneアプリケーションを実際に作成および構築するためのツールチェーンはいくつかあります(win-chainなど)。 WindowsでObjective Cのコードを構築するためのチュートリアルはいくつかあります。しかし、問題がある、それ故に開発されたアプリは私の電話だけで壊れた刑務所で動作するでしょう。

これを乗り越えてApp Storeに移行するためのハックはほとんどありませんが、AppleがSDKのアップデートを続けているため、ツールチェーンには定期的なアップデートが必要です。それを常に補うのは面倒です。アプリの準備をしたいのなら、arcappsの起動アプリから手頃な価格で手助けを受けることもできます。 iPhoneアプリ開発

1
Isabella Jacob

Cocos2dに基づいてDevelopgameになるように、cocos2d-iphoneをGNUstepに移植しようとしました。しかし、公開するにはMacが必要です。 cocos2d-GNUstep

1
user602592

あなたは正しいと主張します非刑務所電話はAppleのApp Storeに限定されており、Appleはあらゆる規則を強制する「権利」を持っています。ただし、開発中は、Appleとはまったく関係がありません。あなたは使用することができます。デバイスにコードをアップロードしてテストするrsync。

1
Johan Boulé

ある程度、はい、可能です。 Objective-Cのコードを入力してプロジェクトを設定できます。 gccを使って、コードのCおよびC++部分をテストすることもできます。

できないこと

  • インターフェイスはMac専用なので、Interface Builderを使ってインターフェイスを設定します。 (必須ではありませんが推奨)
  • AppleのCocoaクラスを使用するコードをコンパイルします - それらはLinuxには存在しません。
  • シミュレータでコードをテストします - Linux用のものはありません。
  • 実際のデバイス用またはApp Store用のコードをコンパイルする - これには、AppleがOS X用にのみ提供するツールが必要です。
1
CajunLuke

Iosシミュレータはアプリの初期段階でのテストには最適なので、Macを入手することをお勧めします。しかし、私たちが協力している小規模の会社がUnityを使って開発していることを私は知っています。そのように彼らはオフィスのために1つのmacだけを必要とし、それはただ最終的なビルドをコンパイルすることです。それはまたそれがAndroid上で動作することを意味しますが、それはゲームエンジンであるため、本当にあなたの建物によって異なります。あなたはSencha Touch Mobileのようなフレームワークを使ってWebアプリを調べたいと思うかもしれません。

Unity: http://unity3d.com/ Sencha Touch: http://www.sencha.com/商品/ touch /

0
dciso