皆さんは、Corona SDK で開発したアプリを実機で確認するとき、どうやって実機にアプリ配信していますか?私は、実機とケーブルを繋ぐことが面倒で、いつも、DeployGate を利用しています。iOS / Android アプリ共に、DeployGate を利用することで、手順が共通化され、簡単にアプリ配信が行えるようになります。
今回は、Corona SDK で開発したアプリを、コマンド一発で DeployGate 経由でアプリ配信する方法について紹介します。
Corona SDK でビルド
いつものやつですね。
iOS アプリをビルドすると xxxxx.app
というファイルが、Android アプリをビルドすると xxxxx.apk
というファイルが自動生成されます。
IPA ファイルを作成 for iOS
iOS アプリの場合は、別途、IPA ファイルを作成する必要があります。
IPA ファイルは、Payload というディレクトリを作成して、そこに xxxxx.app
ファイルを放り込んで ZIP で固める必要があります。
面倒臭いので、ここまでの作業を自動化しましょう。
#!/bin/bash
NAME="/Users/fakestarbaby/Desktop/${PWD##*/}"
if [ $# = 1 ]; then
NAME=$1
fi
if [ ! -e $NAME.app ]; then
echo "$NAME.app: No such file or directory"
exit 1
fi
if [ -d "Payload" ]; then
rm -fr Payload/*
else
mkdir Payload
fi
cp -rf $NAME.app Payload
zip -r $NAME.ipa Payload
rm -fr Payload
アプリのプロジェクトのルートディレクトリで上記プログラムを実行することで、デスクトップ上に生成済みの xxxxx.app
ファイルから IPA ファイルを自動生成します。
注) 前提条件として、ビルドしたときのアプリ名称と、アプリのプロジェクト名称が同じ名称になっている必要があるので注意してください。
DeployGate へアップロード
DeployGate が提供しているコマンドラインツールをインストールすれば、コマンド一発で簡単にアプリをアップロードすることが出来るようになります。
詳しいインストール方法については、以下の公式サイトを参照してください。
以下のコマンドを叩くだけで、IPA ファイル / APK ファイルを簡単にアップロードすることが出来るようになります。
dgate push xxxxx.ipa / xxxxx.apk
for iOS
私は、先程の IPA ファイルを自動生成するプログラムに、DeployGate へアップロードするコマンドも合わせて書いていて、IPA ファイルを自動生成したあと、そのまま、DeployGate へアプリをアップロードするようにしています。
プログラム全体は、このような感じになります。
#!/bin/bash
NAME="/Users/fakestarbaby/Desktop/${PWD##*/}"
if [ $# = 1 ]; then
NAME=$1
fi
if [ ! -e $NAME.app ]; then
echo "$NAME.app: No such file or directory"
exit 1
fi
if [ -d "Payload" ]; then
rm -fr Payload/*
else
mkdir Payload
fi
cp -rf $NAME.app Payload
zip -r $NAME.ipa Payload
rm -fr Payload
dgate push $NAME.ipa
これで、Corona SDK でビルドした直後に、このプログラムを実行するだけで、簡単に DeployGate へアプリをアップロードすることが可能になります。
for Android
Android アプリに関しては、APK ファイルをアップロードするだけですので、同様の前提条件を満たせるのであれば、以下のようなプログラムを実行しても良いでしょう。
#!/bin/bash
NAME="/Users/fakestarbaby/Desktop/${PWD##*/}"
if [ $# = 1 ]; then
NAME=$1
fi
dgate push $NAME.apk
実機にアプリをインストール
for iOS
DeployGate には、iOS アプリがありません。そのため、Safari で DeployGate にアクセスして、アップロードしたアプリをインストールしてください。
私は、ホーム画面に追加して、すぐに、アプリをインストール出来るようにしています。
for Android
Android アプリが用意されています。
まとめ
DeployGate が登場してから、アプリ配信の敷居がぐっと下がりましたよね。もっと自動化を追求して、Corona SDK アプリをビルドした流れで、そのまま、DeployGate でアップロードされるように自動化出来たら、もう言うこと無しです。