アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

Monacaアプリ(iOS)をネットワーク経由で配布する方法(In Houseビルドについて)

開発したアプリをストアに公開せず、複数の人たちで使う方法としてはAdHocビルドとIn Houseビルドがあります。不特定多数という訳ではありませんので限られたメンバーや社内利用でのビルドになりますが、逆にその制限が目的に合っている場合も多いでしょう。



そこで今回はMonacaアプリを特定利用者に対して、自前のサーバから限定配布する方法について紹介します。



AdHocビルドとIn Houseビルドの違い



まずAdHocビルドとIn Houseビルドの違いについて紹介します。



Ad Hocとは限定目的という意味になります。そのためAdHocビルドされたアプリは限定目的のためのアプリと言うことです。この場合、評価目的配布になります。AdHocは最大100台までの配布が可能です。そしてデバイスを追加するごとにUDIDを登録したり、プロビジョニングファイルの更新、リビルドが必要になります。



In Houseは配布できるデバイスが無制限というのが特徴です。つまりUDIDの管理が不要です。ただし無制限に配布できると言うことはApp Storeを無視することもできてしまうため、In Houseビルドされたアプリが不当に広まったりしないよう厳重な管理が規定されています。



料金もAdHocビルドとIn Houseビルドで異なります。AdHocビルドは一般開発者の年間11,800円(2015年4月現在)で可能です。In Houseビルドを行うにはiOS Developer Enterprise Programに登録が必要で、こちらは年間37,800円(2015年4月現在)となっています。



必要なもの





ビルドについて



今回はIn Houseビルドを想定しているので、AdHocビルドで行ってください。



plistファイルの用意



OTAによる配布の際にはplistファイルを用意する必要があります。基本的な形は以下のようになります。





<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>(IPAファイルのURL)</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>アプリケーションのID(mobi.monaca.appなど)</string>
                <key>bundle-version</key>
                <string>1.0.0</string>
                <key>title</key>
                <string>(アプリ名)</string>
                <key>kind</key>
                <string>software</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>


このXML中の (IPAファイルのURL)、アプリケーションのID(mobi.monaca.appなど)、(アプリ名)をそれぞれ書き換えてください。



そしてこのplistファイル(例えばapp.plist)をHTTPSが使えるサーバ上にアップロードします。手軽なところとしてはAmazon S3DropboxのPublicフォルダがありますが、セキュリティには気をつけてください。



配布用HTMLの作成



次にWebブラウザからアクセスするためのHTMLファイルを用意します。もっとも基礎的な形は次のようになります。





<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width" />
    <meta charset="utf-8">
    <title>ダウンロードページ</title>
  </head>
  <body>
    <h1>ダウンロードページ</h1>
    <a href="itms-services://?action=download-manifest &url=plistファイルのURL">インストール</a>
  </body>
</html>


大事なのはplistファイルのURLになります。このURLはHTTPSでなければなりません。なので、HTML/plist/ipaファイルは同じディレクトリにある方が楽でしょう。



試してみよう



では実際に試してみます。ファイル構成は次のようになります。





ファイル構成



そしてこのHTMLに対してアクセスします。今回はDropboxを使っています。そしてインストールのリンクをタップします。





Mobile Safariからアクセス



そうするとインストールが開始されます。





アプリのインストール中



無事アプリが立ち上がりました。










基本的な流れはIn Houseビルドでも変わらないかと思います。AdHocでのビルド、plistとHTMLファイル、HTTPSで行うといった点に注意しください。



ぜひMonacaアプリ開発でお役立てください!



Monaca - HTML5ハイブリッドアプリ開発プラットフォーム