年末年始に生成AIのツールをいくつか触りましたが、その進歩に驚かされました。ChatGPT、Claudeなどのチャット形式のツールは毎日のように触れていましたが、Bolt、Cursorのcomposer, v0といったツールはプロンプトを渡すと、アプリケーション全体の生成を行ってくれる。すごい時代を生きているものだと思った。
しかし、アプリ作成が簡単になったところで、「じゃあこれをアプリストアに公開しておいて」と言って、やってくれるようにはなっていない。過去にこの作業はiOS, Androidともにやったことがあるが、かなりの手作業が発生するためだと思う。
今年はアプリをじゃんじゃか開発していこうと思っているので、アプリ公開するまでの手順に慣れておかないとと思っていました。時間の見積もりができない作業は、なかなか手を出しにくいという個人的法則があるためです。そのため、2025年時点でどのような手順が必要か、どれくらいめんどくさいのかを、iOSの場合で確認してみました。
検証のために用意したアプリはこんな感じの日記アプリ。
簡単な質問に答えるだけでその日の日記が完成するというもの。
あくまでサンプルなので、内容の完成度についてはツッコミなしでお願いします。
これはReact Nativeというクロスプラットフォーム開発(1つのソースで複数のOSに対応できる)ができるフレームワークを、さらに効率よく開発させてくれるExpoというツールで作っています。
結論から言うと、これを公開(申請)するまで2時間半かかりました。
事前準備
事前にこれらの設定を済ましてある前提なのでご留意ください。
- Apple Developer Programへの登録
- これがないとAppStoreへの登録は不可能
- 年間99ドルかかる
- Expoアカウントの作成
- アカウントなしでもExpoでアプリは作成できるが、アカウントを持つことで、アプリの公開に関する作業を自動化してくれたり、ストアへの提出なしにアプリの更新ができる機能を提供している。
- 無料プランがある
設定ファイルの準備
React Nativeにはapp.jsonという設定ファイルがあって(flutterで言うpubspec.yaml)
このファイルで以下のようなアプリをリリースするのに必要な設定情報を記載しています。
- プロジェクト名
- バージョン
- アプリアイコンのパス
Expoの設定
アプリ公開を効率化してくれるExpoの恩恵を受けるには、ターミナルからeasコマンドを操作する必要があるので、ログインすます。その後にExpo用の設定ファイルをコマンドにて作成。
eas login
eas build:configure
アイコンの作成
デフォルトのアプリアイコンはシンプルすぎるので、オリジナルのものを作成。
最低限守らなければならないルールはサイズが1024px*1024pxであるということ。
自分の場合は画像生成のAI(にじジャーニー)を使用しました。プロンプトと生成結果はこんな感じ。
こだわろうとすれば無限に時間がかけられるが、深追いはせず、破綻しておらず違和感のない画像であればOKという判断基準で選択。
Macに入っているKeynoteでピクセル指定した画像が作成できるので、貼り付け→書き出しする。
App Store Connectで新規アプリ作成
ここが一番時間取られた。
アプリ名やバンドルIDとやらを設定。
その他やらなきゃいけないことが多い。
- アプリのスクリーンショットを登録
- サイズの指定が6.9 or 6.5インチと決まっているので、手持ちのiPhoneでスクショ撮ってそのまま貼るわけにはいかなかった。
- Xcodeのシミュレータ使う手段もあるが、ストレージの関係でアンインストールしておりその方法も使えず
- 結局手持ちのiPhoneのスクショをアプリアイコンと同じくKeynoteでサイズ調整したものを提出
- プロモーション用テキスト、概要 を作成(違いはわからない)
- サポートURL
- 会社で問い合わせ用のページがあればそのまま使っても良いと思うし、なければアプリのSNSアカウントを作成してそれのリンクでもOK
- 年齢制限指定
- アプリのカテゴリ
- アプリプライバシー
- 価格
- 連絡先情報
これら、不足している情報は設定画面の上部に表示してくれるので1つずつ潰します。
ユーザーのプライバシー情報を収集したり課金要素のあるアプリであればもっと時間を取られるはずです。
そして無事に情報入力が完了したら、最後はビルドしたアプリの提出です。
認証情報、証明書の設定
すごくめんどくさいんですが、Expoを使うと意識せずに乗り切ることができます。以下のコマンドを打って、選択肢から適当なものを選んでいくだけで完了します
eas credentials
アプリのビルドと提出
eas build —platform ios
このコマンドでクラウド上でビルドをしてくれます。バージョンの管理もExpoの管理画面から簡単にできます。そして、App Store Connectへのビルドファイルの提出も、コマンドで実行できます。
eas submit -p ios
アップル側でのビルドの受け取りが完了すると、こんなメールが飛んできます。
ここで、App Store Connetの設定画面から、今回のビルドを選択します。
その際、アプリの暗号化種類について回答する必要があります。
あとは審査用に提出して待つだけです。
ここまでにかかった時間ですが、23時半から作業を始めて2時に終わったので2時間半ということになります。Expoの恩恵を存分に受けてのこの時間なので、手動で証明書関係の設定やビルドファイルの作成をしていたら、丸一日はかかっていたと思います。
審査
審査にどれくらい待つ必要があるかは、こればっかりはやってみないとどれくらい時間がかかるかわかりません。また審査の内容に関しては、担当者が追加の情報や修正を求めて再提出の連絡をしてくることがあります。基準が担当者によってもまちまち説もちらほら聞いたり。
今回のアプリの場合はこんな感じでした。
提出(Waiting for Review):1月4日(土) 1:53
正月休みのためかなかなかレビュー開始されず…
3日経ってようやくレビュー開始
レビュー開始(In Review):1月7日(火) 4:02
レビュー完了(Ready for Distribution):1月7日(火) 4:24
3日間待たされましたが、レビューは20分で終了。
(当然、アプリの規模が大きくなれば、レビューの時間は長くなります)
ちなみにアプリ作成は1時間でした。エラーなく動けば良い、というないようなので、こちらは参考にはならないかも。それでもCursorのComposerという機能でプロンプトを渡し、何度か修正の指示を出すだけできちんと動くアプリができてしまったのには驚きました。Boltで最初は作ろうとしましたが、React.jsでの作成がデフォルトになっていて、スマホアプリは対応していないようでした。
結論
やってみた感想ですが、アプリ公開までの手順はやはりめんどくさいです。スクリーンショット画像のサイズが違ってちまちま修正している時は、何も楽しくない。でも、めんどくさいということはAIが入り込む余地があるということなので、そのうちかなりの部分を代替してくれる気もしています。
あと、Expoを使うとかなり楽になる、というのはあります。一度経験したら手放したくない。
ちなみにExpoを使えばAndridの方のGoogle Playの方にも同じプログラムで申請ができます。そちらは必要に応じてやってみようと思っています。
また、同じことを1年後にやってみて比較しようと思いました。その頃はこんな呑気にやってみた、とか言ってる場合じゃなく失業してるかもだけど。
Leave a Reply