こちらの続きになります。
結構時間経ってしまいました。
正直、アプリを作成するよりもリリースする方が大変でした。
※といってもまだテストリリースで本リリースはできていません。
なお、アプリのリリースにおいてはMac PCが必要なのでが、色々考えて「Macincloud」を利用しました。
色々調べてMacincloudではリリースできない、、、とかいろいろ情報が錯綜していましたが、結論Macincloudで十分です。プランも管理者権限まで付与できるものもありますが、管理者権限も不要です(最安で契約してます)
あと、アプリ名はAIと相談し、もっとわかりやすい方がいいよね。となったので問題集アプリ「Leco」は「ジコモン」に名称を変更しました。(自己作問題集アプリが由来です。)
MacinCloudとは
MacinCloud は、物理的にMacを購入せずに クラウド経由でmacOS環境をレンタル できるサービスです。WindowsやLinuxからでもリモートデスクトップ接続でMacを操作でき、iOSアプリ開発やmacOS専用ソフトの利用が可能になります。
主な特徴
-
クラウド上のMacを利用
RDP(Remote Desktop Protocol)やWebブラウザ経由でアクセス可能 -
開発環境がプリインストール
Xcode、Visual Studio for Mac などが初期状態で利用可能 -
複数プラン
- Managed Server(共有型)
- Dedicated Server(専有型、管理者権限あり)
- Pay-As-You-Go(従量課金、1日単位 or 1時間単位)
-
料金目安
最安プランは月額約20ドル〜(利用時間制限あり)
※今回はPay-As-You-Goで利用し、30時間分先に買いました。 -
OS・スペック選択可
macOSのバージョンやRAM、接続時間などをカスタマイズ可能
メリット
- Macを購入するより低コストで利用開始可能
- 最新OSや開発ツールをすぐ利用できる
- 初期設定不要で契約後すぐに開発可能
- ネット環境があればどこからでもアクセス可能
注意点
- 英語での契約・操作が基本
- プランによっては管理者権限(sudo)が使えない
- 利用時間制限や接続遅延の可能性あり
- 従量課金プランは60日間未使用でアカウント無効化
開発ワークフローとの親和性
Windows環境でiOSアプリ開発やXcode検証を行う際、物理Macを買わずに試せる有力な選択肢。短期的な利用には特にコストパフォーマンスが高い。
ちなみに、かなりプランなどわかりにくいです。
今回は以下のプランで購入しました。
基本料?見たいので10$、30時間分のプリペイドみたいなもので30$、計40$支払っています。
プランの購入はSaaSならではで非常にシンプルに変えます。悩んだら↑に倣って頂くとよいかと思います。
あと、SSH接続を許可するオプションもありますが、つけなかったことを後悔しています・・・
基本的な操作はポータルからのRDPで接続する形ですが、ローカルのテキストのコピペが出来なかった(これは設定上の問題かもしれませんが、、、ただ、どちらにせよ少し重い)ので、sshでローカルから接続できるとターミナルの操作ももう少しやり易かったかもな・・・と思いました。
※メールでコマンドやログ等貼り付けてローカルとのやり取りは煩わしかったです。
はじめに
リリースの流れは以下の対応を行いました。
1.事前準備
2.App Store Connect
3.Xcodeでのプロジェクト設定
4.アプリのビルドとアップロード
5.App Store Connectでの最終設定と審査提出
※チェックリスト式にしているのでご活用ください。
なお、チェックリストもバイブコーディングの一環でGemini CLIにて作成しています。裏どりしながら実際にわかりやすく表現しなおしたり、わかりにくいところは粒度を変えているので実際に使っていただいても差し支えないものになっています。
なお、アプリはGithub経由で転送する手順になっているので、Githubにアプリを置いておいてください。※不明点はコメントください。
「YOUR_APP」はアプリやアプリを格納しているディレクトリを指しているので、ご自身のアプリに置き換えてください。
1. 事前準備
-
Apple Developer Programへの登録:
- 個人または組織としてApple Developer Programに登録済みであることを確認します。
- 年間費用が発生します。(年間99$)
※ブラウザから登録できない場合、Developerアプリから登録してください。
-
Macincloud環境の準備:
- Macincloudにログインし、macOS環境が利用可能であることを確認します。
- Xcodeがインストール済みであることを確認します。(Macincloudには予め入っています。)
- Flutter SDKがインストール済みであることを確認します。
-
プロジェクトファイルの転送:
-
YOUR_APP
プロジェクトフォルダ全体をMacincloud環境に転送します。 -
推奨: Gitリポジトリをクローンします。
(プライベートリポジトリの場合、Personal Access Token (PAT) を使用します。PATはGitHubで生成し、作業完了後に削除することを推奨します。)
git clone https://<YOUR_PAT>@github.com/GITHUB_URL
-
-
Flutter環境のセットアップ (Macincloud上):
- 転送した
YOUR_APP
ディレクトリに移動します。cd YOUR_APP
- Flutterの依存関係を解決します。
flutter pub get
- Flutter環境が正しく設定されているか確認します。
flutter doctor
-
flutter doctor
の結果でiOSに関する問題(特にXcode関連)がないことを確認します。
※Androidのエラーが出ても無視しても差し支えありません。
-
- 転送した
2. App Store Connectでの設定
-
App IDの作成:
- Apple Developerサイト にログインします。
- 「Certificates, Identifiers & Profiles」セクションに移動します。
- 「Identifiers」で新しいApp IDを作成します。
-
「Register an App ID」ページでの選択:
-
App ID Type:
App IDs
を選択します。 -
Description:
YOUR_APP App ID
(または任意の分かりやすい名前) を入力します。 -
Bundle ID:
Explicit
を選択し、com.あなたの会社名.YOUR_APP
のような形式で入力します。- 重要: ここで設定するバンドルIDは、Xcodeプロジェクトの「General」タブにある「Bundle Identifier」と完全に一致させる必要があります。
- Capabilities: 初期段階では何もチェックしないことを推奨します。後から必要になった場合でも追加可能です。
-
App ID Type:
-
Bundle ID: アプリのユニークな識別子を設定します(例:
com.yourcompanyname.YOUR_APP
)。これはXcodeの設定と一致させる必要があります。 -
証明書とプロビジョニングプロファイルの作成:
-
目的:
- 証明書 (Certificates): アプリを開発・配布する開発者の身元をAppleが認証するためのデジタル署名です。
- プロビジョニングプロファイル (Provisioning Profiles): 特定のApp IDを持つアプリを、特定のデバイスで実行したり、App Storeに提出したりすることを許可するための設定ファイルです。証明書、App ID、デバイス情報(開発用の場合)を紐付けます。
-
種類:
- 開発用 (Development): 開発中のアプリを、登録されたテストデバイスにインストールして実行するために必要です。
- 配布用 (Distribution): App Storeにアプリを提出するために必要です(「App Store Distribution」または「Apple Distribution」)。
-
作成手順 (Apple Developerサイトでの操作):
- Apple Developerサイトにログインします。
- 「Certificates, Identifiers & Profiles」セクションに移動します。
-
証明書 (Certificates) の作成:
- 左側のメニューで「Certificates」を選択します。
- 右上の「+」ボタンをクリックして新しい証明書を作成します。
- 種類を選択: 「Apple Development」(開発用)または「App Store Distribution」/「Apple Distribution」(配布用)を選択します。
-
Certificate Signing Request (CSR) のアップロード:
- Mac(Macincloud環境)で「キーチェーンアクセス」アプリケーションを使用してCSRファイルを作成し、それをアップロードします。
-
CSRの作成手順 (Macincloudのキーチェーンアクセスアプリで):
- 「キーチェーンアクセス」アプリを開きます。
- メニューバーから
キーチェーンアクセス > 証明書アシスタント > 認証局に証明書を要求...
を選択します。 - 「ユーザーメールアドレス」と「通称」を入力します。
- 「ディスクに保存」を選択し、「鍵ペア情報を指定」にチェックを入れます。
- 保存場所を選択し、「続ける」をクリックします。
- 保存された
.certSigningRequest
ファイルをApple Developerサイトにアップロードします。
-
証明書のダウンロード: 作成された
.cer
ファイルをダウンロードし、ダブルクリックしてキーチェーンアクセスにインストールします。
-
プロビジョニングプロファイル (Provisioning Profiles) の作成:
- 左側のメニューで「Profiles」を選択します。
- 右上の「+」ボタンをクリックして新しいプロファイルを作成します。
- 種類を選択: 「iOS App Development」(開発用)または「App Store」(配布用)を選択します。
- App IDの選択: 前のステップで作成したApp IDを選択します。
- 証明書の選択: 関連付ける開発用または配布用の証明書を選択します。
- デバイスの選択 (開発用プロファイルの場合のみ): アプリをテストするデバイスを選択します。
- プロファイル名の入力: プロファイルの目的がわかるような名前を入力します。
-
プロファイルのダウンロード: 作成された
.mobileprovision
ファイルをダウンロードし、ダブルクリックしてXcodeにインストールします。
-
Xcodeでの自動管理 (推奨):
- Xcodeの「Signing & Capabilities」タブで「Automatically manage signing」にチェックを入れ、チームを選択することで、Xcodeがほとんどの証明書とプロビジョニングプロファイルの管理を自動で行ってくれます。まずはこの方法を試すことを推奨します。
-
目的:
-
App Store Connectでのアプリ登録:
-
App Store Connectにログインします。
- ウェブブラウザで App Store Connect にアクセスし、あなたのApple IDでログインします。
-
「My Apps」に移動します。
- ログイン後、通常は「My Apps」のダッシュボードが表示されます。表示されない場合は、上部のメニューから「App」または「My Apps」を選択してください。
-
新しいアプリを追加します。
- ページの左上または中央にある「+」ボタン(または「Add App」ボタン)をクリックし、ドロップダウンメニューから「New App」(新しいApp)を選択します。
-
新しいAppの情報を入力します。
- Platforms (プラットフォーム): 「iOS」にチェックを入れます。
-
Name (名前): App Storeに表示されるアプリ名を入力します(例:
アプリ名
)。 -
Primary Language (プライマリ言語): アプリの主要な言語を選択します(例:
Japanese (Japan)
)。 -
Bundle ID (バンドルID): ドロップダウンメニューから、Apple Developerサイトで作成したApp IDのバンドルIDを選択します。
- 重要: ここで選択するバンドルIDは、Xcodeプロジェクトの「General」タブにある「Bundle Identifier」と完全に一致している必要があります。
-
SKU (Stock Keeping Unit): アプリの内部識別子を入力します(例:
YOUR_APP_v1.0
)。 - User Access (ユーザーアクセス): 通常は「Full Access」で問題ありません。
- 「Create」ボタンをクリックします。
-
App Store Connectにログインします。
3. Xcodeでのプロジェクト設定 (Macincloud上)
-
Xcodeでプロジェクトを開く:
- Macincloud環境でXcodeを起動し、
YOUR_APP/ios/Runner.xcworkspace
を開きます。
- Macincloud環境でXcodeを起動し、
-
Apple IDでのサインイン:
- Xcodeの
Preferences (設定) > Accounts
で、自分のApple IDでサインインします。
- Xcodeの
-
バンドルIDの確認と設定:
- Xcodeのプロジェクトナビゲーターで「Runner」プロジェクトを選択します。
- 「TARGETS」の下にある「Runner」を選択します。
- 「General」タブの「Identity」セクションにある「Bundle Identifier」が、App Store Connectで作成したApp IDと一致していることを確認します。
-
署名と機能(Signing & Capabilities)の設定:
- 「Signing & Capabilities」タブに移動します。
- 「Team」で、Apple Developer Programに登録したチームを選択します。
- Xcodeが自動的にプロビジョニングプロファイルを管理しようとします。
-
バージョンとビルド番号の確認:
-
pubspec.yaml
のversion
フィールド(例:1.0.0+1
)が、App Storeに提出するバージョンとビルド番号と一致していることを確認します。-
CFBundleShortVersionString
(バージョン名) は1.0.0
-
CFBundleVersion
(ビルド番号) は1
- これらは
pubspec.yaml
から自動的に取得されます。
※更新する度、このバージョンが異なるものにならないと更新とみなされませんので、アプリの更新に合わせて更新することを忘れないようにしてください。
-
-
4. アプリのビルドとアップロード (Macincloud上)
-
リリースビルドの作成:
- ターミナルで
YOUR_APP
ディレクトリに移動し、以下のコマンドを実行してリリースビルドを作成します。flutter build ios --release
- ターミナルで
-
Xcodeでのアーカイブとアップロード:
- Xcodeに戻り、メニューバーから
Product > Archive
を選択します。 - オーガナイザーウィンドウが開いたら、アーカイブを選択し、「Distribute App」をクリックします。
- 「App Store Connect」を選択し、指示に従ってアプリをApp Store Connectにアップロードします。
- Xcodeに戻り、メニューバーから
※アプリはAppleにて審査されます。もし、時間がかかっているのにApp Store Connectにアプリが出てこない場合、何かしらの通知がメールできている(英文)かもしれませんので、ご確認ください。
特に、端末の何かしらの情報にアクセスする機能がある場合(連絡帳や写真フォルダなど)使用目的の説明が必要になります。(Info.plistに説明の追記が必要になります)
5. App Store Connectでの最終設定と審査提出
-
メタデータ入力:
このステップは、App Storeに表示されるアプリの情報(説明、スクリーンショット、価格など)を設定する非常に重要な作業です。ユーザーがアプリを見つけ、ダウンロードするかどうかを決定する上で大きな影響を与えます。- App Store Connectにログインし、対象のアプリを選択します。
-
「App Store」タブのバージョンページに移動します。
- 通常、左側のメニューから「App Store」を選択し、現在準備中のバージョン(例: 「1.0 Prepare for Submission」)をクリックします。
-
ビルドの選択:
- 「ビルド」セクションで、Xcodeからアップロードしたビルドを選択します。
-
スクリーンショットとプレビュー:
-
スクリーンショット: アプリの魅力を伝えるためのスクリーンショットをアップロードします。
- 必須: iPhone (6.5インチディスプレイと5.5インチディスプレイ) とiPad (12.9インチディスプレイ第2世代と第3世代) のスクリーンショットが必要です。
- Appプレビュー (任意): アプリの機能を紹介する短い動画(最大30秒)をアップロードできます。
-
スクリーンショット: アプリの魅力を伝えるためのスクリーンショットをアップロードします。
-
プロモーションテキスト:
- アプリの最新情報や期間限定の機能などを紹介する短いテキスト(最大170文字)です。
-
説明:
- アプリの機能、特徴、利点などを詳細に説明するテキスト(最大4000文字)です。
-
キーワード:
- アプリを検索する際に使用されるキーワード(最大100文字)です。カンマ区切りで入力します。
-
サポートURL:
- ユーザーがアプリに関するサポートを求める際にアクセスできるウェブサイトのURLです。
-
マーケティングURL (任意):
- アプリのマーケティングやプロモーションに使用するウェブサイトのURLです。
-
著作権:
- 著作権情報を入力します(例:
© 2025 Your Company Name
)。
- 著作権情報を入力します(例:
-
App Review Information (App審査情報):
- 連絡先情報: Appleの審査チームがアプリの審査中に連絡を取るための担当者の名前、電話番号、メールアドレスを入力します。
- デモアカウント (必要な場合): アプリにログイン機能がある場合、審査チームがアプリのすべての機能を確認できるように、デモアカウントのユーザー名とパスワードを提供します。
- メモ: 審査チームへの特別な指示や、アプリの特定の機能に関する説明を記載します。
-
バージョンリリース:
- 審査に合格したアプリをいつリリースするかを選択します。
- 手動でリリース: 審査合格後、あなたが手動でリリースボタンを押すまで公開されません。
- 自動的にリリース: 審査合格後、自動的にApp Storeで公開されます。
- 審査に合格したアプリをいつリリースするかを選択します。
-
プライバシーポリシーURL:
- アプリのプライバシーポリシーが記載されたウェブサイトのURLです。
-
カテゴリ:
- アプリの主要なカテゴリと、必要であればサブカテゴリを選択します。
-
年齢制限:
- アプリの内容に基づいて、適切な年齢制限を設定します。
-
審査提出:
- すべての情報が揃ったら、アプリを審査に提出します。
※サポートURLやプライバシーポリシーURLは必須なので、サイトを持っていない場合、Google Siteなどを使うとよいです。
テストについて
正式に申請する前にテストすることができます。
テストをする際に、端末(iPhone)にまずTestFlightというものを入れておきます。
そして、テスト用のグループを作り、TestFlightにてアプリをビルドするとiPhone上のTestFlight上からダウンロードできるようになります。
左がテストアプリをダウンロースするためのアプリで、右が今回作ったアプリです。
※アイコンはまだ作ってません。
次回は、本番リリースと総括についてまとめたいと思います。
※結構作りこんでます。出来る限り急いでリリースします。
※アプリリリース方法について、不明点や重点的に補足してほしいもの等ございましたらコメント頂けますと、出来る限り反映していこうと思います。
最後まで読んで頂きありがとうございました。