AndroidアプリをXcodeで作る方法

……とタイトルには書きましたが、正確には「AndroidアプリをXcode上でビルドする方法」です。

最近スマートフォンがはやってるんだけど、iPhoneだけじゃなくてAndroidバージョンも欲しいから一緒に開発してくんないかな?と無茶ぶりされてiOS/Android同時開発に勤しむみなさまへ。

手順はこんな感じです。 (図はクリックすると拡大します。)

  1. EcliplseでAndroidの新規プロジェクトを作る
  2. Xcodeで新規プロジェクトを作ってEclipseで作ったファイルを読みこむ
  3. Android updateをする
  4. Xcodeでプロジェクトのビルド設定を変更する
  5. ビルドする

(念のためですが、EclipseとXcodeがインストールされている環境でのみ実行できます。あと、当然Macでのみ実行可能です。)

プロジェクトの作成

まずはEcliplseでAndroidのアプリを新規作成してください。 プロジェクト名は、ここではHelloWorldとしますね。 パスはこちらになっているとします。

// Eclipseで設定したプロジェクトパス
/Users/toyship/workspace/HelloWorld/

それから、Xcodeを開いて、File メニューから New Project (新規プロジェクト)を選択。 プロジェクト選択画面では、External Build Systemを選択してください。

プロジェクト名はHelloWorldにして、パスはさきほどのAndroidプロジェクトの一つ上を選択してださい。

// Xcodeでプロジェクトを作成するパス
/Users/toyship/workspace/

このときに、「HelloWorleはもう存在するんだけどいれかえる?」と聞かれるので、「いれかえる(replace)」を選択。

するとこんな感じのファイル構成になります。 Eclipseでもともと作ったHelloWorldフォルダーの中に、Xcodeのプロジェクトファイル(HelloWorld.xcodeprj)が作成されます。

Xcodeプロジェクトにファイルを追加

その次に、今作成したXcodeのプロジェクトに、Eclipseで作ったソースファイルなどを追加します。 XcodeのProjectメニューから、Add to Project(プロジェクトに追加)を選択して、表示されたダイアログボックスで好きなファイルを追加してください。

ただし、その場合にダイアログの一番上に表示されている「コピーする」チェックボックスはオフにすること。

ここで追加するファイルはとりあえずなんでも構いません。 Eclipseで作ったプロジェクトのファイルの中から、自分がXcode上で編集したいファイルを追加してください。 (どのファイルがビルドの対象となるのかは別に設定されるので、ここで何を読み込んでもビルドエラーにはなりません。)

Android update

で、このままではant用のビルド設定ファイルがないので、作成します。

> cd /Users/toyship/workspace/HelloWorld/
> Android update project --path .

これでプロジェクトフォルダー内にbuild.xmlが作成されます。

ビルド設定を変更

次にXcodeのビルド設定を変更します。 画面左ペインのTargets(ターゲット)を開くと、HelloWorldという項目があるので、そこをダブルクリック。

そうするとビルド設定画面が表示されるので、ここで Build Tool とArgumentsとDirectoryをこの図と同じ値に設定。

ビルド

そしてXcodeのメニューからビルドすると、こちらにデバッグビルドのapkファイルができます。 /Users/toyship/workspace/HelloWorld/bin/MainActivity-debug.apk

というわけで、apkファイルが作成できたので、あとはこれを手動で実機に転送してください。

でも、XcodeでAndroid開発をすると、

  • コード入力時に自動補完が使えない
  • グラフィカルなXML編集機能が使えない
  • エミュレーターに転送できない
  • 実機に自動転送できない
  • リリース用ビルドでリリースすると署名の設定が必要
  • この手順ではapkの名称がメインのアクティビティになってる

……などなど、いろいろと不便な点が多いので、素直にEclipseを使って作った方がいいかもしれませんね。

でもXcode用のAndroid新規プロジェクトのテンプレートをつくればEclipseだけで開発をほとんどできるかも。 誰得?という感じですが……。

参考

こちらの記事を参考させていただきました。 ありがとうございました。