Manus作のアプリをApp Storeに出して学んだこと

はじめに

Manus 1.6で、モバイルアプリ作成機能がリリースされました。

以前から温めていたアプリのアイデアがいくつかあったので、さっそく試してみることに。

できあがったものは、思っていた以上のクオリティでした。 これはネイティブアプリにするしかありません。

こうして、複数のアプリを同時に開発することになりました。

Manus to Native App Transition

ローカルへの取り込み

まずはManusで作成したアプリを、ローカル環境に取り込みます。

ManusにはGitHub連携機能があるので、これを使ってコードをアップロード。

続いて、Claude Codeでリポジトリを取得します。

これで開発の準備が整いました。

Manus依存の解消

アプリの枠組みはほぼ完成しています。 残っているのは、主にバックエンド周りの作業です。

Claude CodeとAntigravityで調査したところ、Manus固有の環境に依存している部分がいくつか見つかりました。

データベースや認証機能、デプロイ先などです。

これらはSupabaseとVercelに移行することにしました。

他にも、機能とは関係のないManus関連ファイルがいくつかありました。 おそらく元のデータベースやデプロイ先との連携用だったのでしょう。 不要なものは整理して削除しました。

こうして、ようやくアプリが完成しました。

Migration Architecture to Supabase and Vercel

App Store申請の準備

次はApp Storeへの申請です。

まずApple Developer Programに登録しました。

続いてXcodeでビルドをアップロードし、App Store Connectで必要な情報を入力していきます。

このとき、ある重要なことを見落としていました。

バンドルIDの落とし穴

申請後に気づいたのですが、バンドルIDが space.manus.* から始まる文字列のままでした。

バンドルIDとは、アプリを一意に識別するための文字列です。 通常は com.会社名.アプリ名 のような形式で設定します。

問題は、このバンドルIDが最初のビルドをアップロードした後は変更できないこと。

すでにアップロード済みだったので、もう後戻りはできません。 確認を怠った自分のミスです。

Bundle ID Locked

2つ目以降は学習した

同じ失敗を繰り返さないよう、2つ目のアプリからはあらかじめバンドルIDを変更しました。

dev.nishimoto.* という、自分のドメインに沿った形式に設定しています。

バンドルIDはユーザーから見えるものではないので、実害はありません。 でも、やはり自分の名前が入っている方が気持ちがいいものです。

おわりに

Manusで作成したアプリをApp Storeに出すまでの流れは、思ったよりもスムーズでした。

ただし、バンドルIDのような細かい設定は、最初のビルドをアップロードする前に必ず確認しておくべきです。

同じ失敗をする方が一人でも減れば幸いです。