Windows上(cygwin上)でiPhone/iPod touchアプリの開発環境を構築する

2009/03/19 追記:リンク先のサイトが軒並みcloseされていて参考にならない記事になっています。

iPhone OS 2.0に対応したエントリを書いてみました

2008/08/05 追記:iPod touch 1.1.4をJailbreakしてOpenSSHをインストールした状態で行ったものです。JailbreakしてないiPod/iPhoneでは勝手アプリはインストールできません。またiPhone 3Gのようなバージョン2.0ではまだ試していませんのでご注意を

いよいよ日本でのiPhone発売に向けてカウントダウンを切ったところですが、いまさらながら今日はWindows上でiPhone/iPod touchの開発環境を構築する手順のメモを載せてみようと思います。

さて、思えばiPod touchアプリの開発を夢見てiPhone SDKのリリースを首を流して待ったわけですが、iPhone SDKがLeopardでしか動かないと知り、Leopardを買ってきてインストールしてやっとのことでSDKをダウンロードしたらIntel Macじゃないとダメよと言われ愕然とし(当方G4)、会社でIntel Macを買ってもらいSDKをインストールできたものの、SDKだけでは実機にアプリは転送できず、それを実現するためのiPhone Developer Programは限られた人数しか参加できずAppleからハブられ続けてやる気をなくす。という長い流れがあったわけです。

でじゃぁjailbreakしてアプリをコピーするか、ということにしたのですが、そもそもSDKが公開される前からiPhone/iPod touchアプリの開発方法はいろいろ公開されてました。intel macやLeopardが必要なのはあくまでSDKの話であって(OSやプロセッサに制限があるのは技術的な問題ではなく単純に開発&検証コストの削減だと思われる)、エミュレーションは無理でもgccできれば別にOSやプロセッサに関係なくアプリは作れるはずと思っていました。

んで、探したところありました。cygwinで開発する方法
http://wiki.iphonegameover.com/Windows_Cygwin_Binary_Toolchain_Installation
なんでまたMacを持ってるのにWindowsで開発するのかという話もあります。本当はMacで全部開発したい気持ちもありますが、Nico2Mobileとか.NETアプリも開発してる関係上、今のところWindowsのモバイルノート一台で全ての開発ができるのが好ましいという個人的事情が理由です。(VMWareは重いし、OS切り替えるのとかメンドイ)iPod touchを買うような人はマカーな人が多いと思いますが、OSのシェアを考えるとWindows PC + iPod touchを使ってる人も結構いると予測でき、案外Windowsで開発できるってのも大きいのではないかと思います。

前置きが長くなりましたが、手順のメモです。基本的にはhttp://wiki.iphonegameover.com/Windows_Cygwin_Binary_Toolchain_Installation
の日本語訳みたいなものなので、キャプチャーとかは原文サイトを見てもらうのが良いかと。

Windows_Cygwin_Binary_Toolchain_Installation手順メモ

iPhone/iPod touch開発用のcygwinセットアップが公開されておりそれを使う。

脱獄している悪人とは言え、ルール上セットアップにはMacOSX10.4u.sdkとiPhoneのf/wから取り出すライブラリは含まれていない。

これらは別途用意する必要がある。

  • /Developer/SDKs/MacOSX10.4u.sdk
    1. Xcode 2.5 Developer Tools (Disk Image) (902.9 MB as of 30 Oct 2007)をダウンロードする
    2. ISOイメージから\Packages\Packages\MacOSX10.4.Universal.pkg\Contents\Archive.pax.gzを取り出す
      • iphonegameorver.comではPowerISOというツールを使う手順になっているが、他にツールを持ってるならそれでも良いし、なんならいったんDVDに焼いてからDVDから取り出すのもありだろう
      • PowserISOを使う場合http://www.poweriso.com/download.htmからダウンロードしセットアップする、起動したら、ファイル->開くよりダウンロードしたDiskImageを開き\Packages\Packages\MacOSX10.4.Universal.pkg\Contents\Archive.pax.gzをデスクトップなどにD&Dすればコピーできる
  • iPhone/iTouch root filesystem
    • いろいろな取り出し方がWebにあふれているがiPhone/iPod touch開発用のcygwinの起動時に実行されるスクリプトに乗っかるのが良いと思われる、よってこの後の「cygwinの起動と設定」を参照されたい
  • cygwinのインストール
    1. cygwin setupをダウンロードし、実行する
    2. パッケージのダウンロード先として下記のURLを入力して追加する
      • http://www.iphonegameover.com/cygwin
    3. ダウンロード先として追加され選択状態になっていたら次へ進む
    4. パッケージの選択は特にデフォルトのままでよい
  • cygwinの起動と設定
    1. Developer/SDKs/MacOSX10.4u.sdkの準備
      • cygwinの起動時のスクリプトで要求される
      • ISOイメージから取り出した\Packages\Packages\MacOSX10.4.Universal.pkg\Contents\Archive.pax.gzを適当なディレクトリに置く
      • 適当な場所がわからない場合は、c:\cygwin\tmp\Archive.pax.gzとかに置く
      • ちなみにVistaでやったときはhomeディレクトリはWindowsの環境設定が使われた(C:\Users\{アカウント名})、起動時のcurrentディレクトリはhomeディレクトリなのでここにArchive.pax.gzを置いておくと自動的に見つけられる。ただXPでやったときはhomeディレクトリはc:\cygwin\home\{アカウント名}だった。よくわからない。
    2. iPhone/iPod touchの準備
      • cygwinの起動時のスクリプトでiPhone/iTouch root filesystemも要求される、ssh経由でアクセスするのでiPhone/iPod touchをWiFiにつないでおきIPアドレスを調べておく
    3. cygwinを起動する
    4. iPhone/iTouch root filesystemが無い、機器からダウンロードするか(‘Do you wish to connect to your device and download the required files?’)と聞かれるのでyを押す
    5. 機器のIPアドレスを入れろ(‘Please enter the remote IP address of your device:’)と言われるので先ほど調べたiPhone/iPod touchのIPアドレスを入力する
    6. たぶん最初のアクセスなので接続を続けるか(‘Are you sure you want to continue connecting (yes/no)?’)と聞かれるのでyesを入力する
    7. rootのパスワードを聞かれるのでalpineと入力する
      • alpine
    8. うまくいけばファイルシステムがインストールされるので待つ
    9. Xcodeのヘッダがないので入れるか(‘Do you wish to install the XCode header files?’ )と聞かれるのでyを押す
    10. currentディレクトリにArchive.pax.gzがあれば読み込まれる
      • currentディレクトリにない場合はファイルが置いてあるディレクトリを入力する
      • c:\cygwin\tmp\Archive.pax.gzに置いたなら/tmp/Archive.pax.gzと入力する
    11. Your toolchain installation is now complete!が表示されたら成功。ファイルが見つからない場合などで失敗した場合、このスクリプトを削除するか?と聞かれるのでnoを入力し、パスなどを確認して再度cygwinを起動する