Adobe AIR 3.3と3.4では、iOS関連の新機能がいくつか追加され、AIRの開発環境から直接iOSシミュレーターを起動したり、デバイスにUSB経由で直接インストールしたりできるようになりました。Flash Professional CS6でも、先月末に公開されたアップデータを適用することで、これらのiOS関連の新機能(一部を除く)を利用できるようになり、FlashによるiOSアプリの開発が格段にやりやすくなります。本記事では、Flash Professional CS6(version 12.0.2.529 2012/09/27時点)を使ったiOSアプリの開発方法について説明します。

準備するもの
Mac本体 XcodeはMac OS上でのみ動作します。Xcode 4.5を利用するには、Mac OS 10.7以降が必要です。
iOSデバイス iOSデバイスはARMプロセッサを利用しており、そのアーキテクチャのバージョンはデバイスごとに異なります。Adobe AIRはarmv6アーキテクチャに対応していないため、古いデバイスではAdobe AIRで作成したアプリが動作しません。Adobe AIRのアプリが動作するデバイスについては、「Adobe AIRの必要システム構成」ページをご覧ください。
Flash Professional CS6 2012年9月に公開された、Flash Professional CS6のアップデータを適用してください。このアップデータには、本記事で説明する機能が追加されています。アップデートは、Flash Professional CS6のメニューから[ヘルプ]→[アップデート...]を選び、Adobe Application Manager経由で行えます。
Xcode XcodeはiOS Dev Centerより入手できます。iOS6対応のアプリを作成するには、Xcode 4.5以降が必要です。本記事では、Xcode 4.5を用いて解説します。
iOS Developer Programへの登録 デバイスへアプリを転送する際に必要となります(iOSシミュレーターでテストするだけなら不要です)。年間参加費は8400円(2012年9月時点)です。
※iOS Developer Programへ登録する際の登録情報は日本語ではなく、半角英数字を使用してください。日本が含まれていると問題が発生することがあります。
※iOS Developer Programへ未登録の方は、「日本のApple StoreでiOS Developer Programを購入しActivateするまでの全スクリーンショット」が参考になります。

アップデータを適用したFlash Professional CS6を使った場合、iOSアプリ開発のワークフローは以下のようになります。

【iOSアプリ開発のワークフロー】

※ステップ4以降の作業を行うには、iOS Developer Programへの登録が必要です。

ステップ1:Flash Professional CS6 でアプリ制作を開始

まず簡単なアプリを作ります。

1-1 「AIR for iOS」を選択してファイルを新規に作成する

Flash Professional CS6を起動したら、新規作成で「AIR for iOS」を選択して、ファイルを新規に作成します。

1-2 スクリプト言語はActionScript 3.0を使用する

スクリプト言語はActionScript 3.0を使用します。プロパティインスペクタで、[ターゲット]を[AIR3.4 for iOS]、[スクリプト]を[ActionScript 3.0]に設定します。ここでは例として、ボタンを押したら、iOSのマップアプリに切り替わるアプリを作成しました。本記事では、ワークフローの解説が目的のため、アプリ作成の詳細については割愛します。

ステップ2:Flash Professional CS6でのパブリッシュ設定

iOSシミュレーターで確認する前に、パブリッシュ設定に必要項目を入力します。

2-1 アプリケーションの設定を編集する

AIR for iOSの設定は、プロパティインスペクタの[ターゲット]の横にある[スパナ]ボタンから行います。

2-2 [一般]タブでiOSシミュレーターへのパスを設定する

[一般]タブの[iOSシミュレーターSDK]に、Mac内にインストールされているiOSシミュレーターへのパスを入力します。特に何も変更しなければ、下記のパスにインストールされています。

Xcode 4.5の場合

/Developer/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk

Xcode 4.2以前の場合

Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk

2-3 [デプロイ]タブで証明書へのパスとパスワードを設定する

[デプロイ]タブの[iOSデジタル署名]欄に証明書(.p12)ファイルへのパスと証明書を利用するためのパスワードを入力します。証明書は、アプリのインストールに必要になります。iOS Developer Programに登録している方は、iOS Provisioning Portalで作成した証明書ファイルを使用してください。未登録の場合、サードパーティのツールもしくはコマンドラインを用いることでも、.p12ファイルを簡易的に作成できます。ここでは、FlashDevelopを使用して作成した証明書を使用しました。

※FlashDevelopを使った証明書(.p12)ファイルの作成方法については、「FlashDevelop + GCCでANE入門 << Rest Term」ページの「FlashDevelopでAIRプロジェクトを作る」項目が参考になります。

 

ステップ3:iOSシミュレーターで動作検証

いよいよiOSシミュレーターでアプリを動作検証します。

3-1 iOSシミュレーターを選択してデバッグを実行する

初回実行時は、メニューから[デバッグ]→[ムービーをデバッグ]→[iOSシミュレーター]を選択すると、実行されます。2回目以降は、[iOSシミュレーター]の下にある[デバッグ]を選択して実行します。

3-2 リモートデバッグセッションを開始する

メニューから[デバッグ]→[リモートデバッグセッションを開始]→[ActionScript 3.0]を選択すると、[デバッグ]ウィンドウが開き、iOSシミュレーターでの動作中のtrace()などの処理内容を[出力]パネルに表示します。

3-3 iOSシミュレーター上でアプリを起動する

SWFの書き出し、アプリのビルドが終了すると、自動的にiOSシミュレーターが起動します。アプリアイコンをクリックしてアプリを起動します。

3-4 アプリが起動すると同時に[出力]パネルに結果が表示される

アプリが起動すると同時に[出力]パネルにtrace()などの結果が表示されます。ここでは、[出力]パネルに「[SWF] hello.swf - 4837 バイト (圧縮解凍後)」の文字が追記されました。ボタンをクリックして、iOSシミュレーター内のマップアプリを起動します。

3-5 マップアプリに切り替わり、[出力]パネルにtrace()メソッドの内容が表示される

ボタンクリックによって発動するfunction内の2つのtrace()メソッドの内容が、[出力]パネルに追記されました。ここでは、URLスキームを用いて、iOS内のマップアプリを引数での指定をつけて呼び出しています。

ステップ4:デバイスでの動作検証

デバイスにアプリをインストールするためには、iOS Developer Program登録後に取得できる、証明書ファイル(.p12)とプロビジョニングプロファイル(.mobileprovision)が必要になります。あらかじめ準備しておきましょう。

[OnePoint]テスト段階で使用するプロビジョニングプロファイルは、iOS Team Provisioning Profileを使用すると、正式なAppIDが決まっていなくても、エラーが出ません。通常は、iOS Provisioning Portalで指定したAppIDと、Flashの[AIR for iOSの設定]ウィンドウ→[デプロイ]タブ→[アプリケーションID]に設定した内容が食い違うと実機転送時にエラーとなります。

 

4-1 使用しているMacのWi-Fiのネットワーク名とIPアドレスを確認する

Flash Professional CS6を使ってデバイスでデバッグを行う場合、アプリのインストールはUSB経由、デバッグはWi-Fi経由となり、どちらにも接続されている必要があります。Wi-Fi経由でデバッグするには、次の2つが条件となります。

  1. デバイスと開発に使用しているMacが、同じWi-Fi上に接続されていること。
  2. 開発に使用しているMacのIPアドレスをあらかじめ設定しておくこと。

Mac OSのシステム環境設定>ネットワーク環境設定を開き、Wi-Fiのネットワーク名とIPアドレスを確認します。

4-2 デバイスでのデバッグ用に設定を追加する

[AIR for iOS設定]ウィンドウを開き、以下の設定を行います。

  1. [証明書][パスワード][プロビジョニングプロファイル]の箇所には、iOS Provisioning Portalやキーチェーンアクセスから入手した証明書や利用するためのパスワードを指定します。
  2. [クイックパブリッシュ-デバイスでのデバッグ用]を選択し、その下のプルダウンメニューであらかじめ確認していたIPアドレスを選びます。
  3. パブリッシュを送信の下の[選択されたiOSデバイスにアプリケーションをインストールする]にチェックを入れます。

4-3 リモートデバッグセッションを開始する

メニューから[デバッグ]→[リモートデバッグセッションを開始]→[ActionScript 3.0]を選択し、[デバッグ]ウィンドウを開いて、リモートデバッグセッションを待機状態にします。

4-4 デバイスにアプリをインストールする

MacにデバイスをUSBケーブルで接続します。[パブリッシュ]を行うと、USBケーブル経由でデバイスにアプリがインストールされます。パブリッシュは、[AIR for iOS設定]ウィンドウからでも、メニューの[ファイル]→[パブリッシュ]のどちらでも構いません。お好きな方で実行してください。

※AIR for iOSが対応していない古いデバイス(armv6アーキテクチャのもの)にインストールしようすると、「デバイスエラー:デバイスに十分な容量があるか確認してください」とエラーが表示されることがあります

4-5 デバイスでアプリを操作し、[出力]パネルにtrace()などの内容を出力する

iOSシミュレーターでのデバッグと同様に、デバイス上でアプリを操作すると、[デバッグ]ウィンドウの[出力]パネルにtrace()などの内容が出力されます。

ステップ5:AppStoreへアプリを申請

アプリが完成したらAppStoreへ掲載を申請します。

※アプリ申請に関する必要なデータと入力項目に関しては、iTunes Connectの[Manage Your Applications]ページの下部にある、Developer Guides>Japanese がとてもわかりやすいです。AppStore掲載用の画像サイズなども出ていますので、あらかじめ目を通しておくことをおすすめします。

※アプリ申請するまでの手順に関しては、「iOS Dev Center : App Storeから配布(Distribution)するまでのMEMO << MUSHIKAGO APPS MEMO」が参考になります。

5-1 Application Loaderでアプリをアップロードする

最初に、iTunes Connectの[Manage Your Applications]ページで、アプリ名などの基本情報を入力します。すると、ステータスが「Waiting For Upload」になります。その後、Xcode付属のDeveloper Tool内の Application Loaderからアプリ(.ipa)ファイルをアップロードします。Application Loaderはウィザード形式になっているので、画面の通りに進んでいけば手順に悩むことなくアップロードできます。