🚀 はじめに:MacがなくてもiOSアプリはリリースできる!
「iOSアプリをApp Storeに出すにはMacが必須」
そう思っている方、多いのではないでしょうか。
私もそう信じていました。ですが実際には Windows環境だけでiOSアプリをApp Storeに公開 できました。
この記事では、そのときの体験談と手順、そしてハマりポイントを共有します。
✨実際にMacなしでリリースしたアプリがこちらです!

🧑💻 この記事が役立つ人
- Macを持っていないけどiOSアプリを出したい方
- プログラム開発の経験があり、ビルド等基本的な単語のイメージがつく方
- App Store公開までのイメージを掴みたい方
🛠️ 準備するもの
- Windows PC: 普段お使いのものでOKです。
- Apple Developer Programアカウント: 年会費 $99 が必要です。ここだけは逃れられません...
- iOS端末 (iPhone/iPad): 実機での動作確認に使います。普段使いのものでOK。
🗺️ 開発フローの全体像:AIとExpoが鍵!Macなしでのリリースプロセス
MacがなくてもiOSアプリを公開できるのは、ExpoがMac上でしかできないビルド/アップロード工程を代行してくれるためです。
大まかな流れは以下の通りです。
- 開発: Expo GoとAI(Cursor)を使ってコーディングしていきます。
- ビルド: Expo(EAS)を使ってアプリをクラウド上でビルドします。
- Appleへ提出: Expo(EAS)を使ってビルドしたアプリをAppleへアップロードします。
- 審査: App Store Connect(管理画面)からAppleへ審査を依頼します。
- 公開: 審査が承認されれば、Apple Storeに公開されます!
(Expo、EAS、Expo Goの関係性)
1. Expo:開発環境・ツールの総称。React Nativeアプリを簡単に作れるようにするツールやライブラリのセット。
2. EAS (Expo Application Services):Expoツールの1つ。ビルドやAppleへの提出をWeb上で自動的に行ってくれる。 3. Expo Go:開発中に手軽に動作確認ができるスマホアプリ。 |
🚀 実践編:MacなしiOSアプリ公開までの具体的なステップ
それでは、実際にMacなしでiOSアプリを公開するまでの具体的な手順を見ていきましょう。
4-1. アプリ開発:Expo Goを使い実機で動かしながらプログラミング
① 開発準備
まずはnpmコマンドを使えるよう、nodeをインストールします。
次にコマンドプロンプトを起動し、Expo CLIをインストールします。
# Expo CLIのインストール(初回のみ)
npm install -g expo-cli
# インストールできてるか確認
npx -version
② Expo初期プロジェクトの作成
続いて新規Expoプロジェクトを作成します。
- 今後開発に使っていくフォルダを作成
例: C:\Users<ユーザー名>\Documents\Repos\TestApp - フォルダ内で右クリック ⇒ VSCodeやCursor等任意のエディタで開く
- エディタ内ターミナルを開き、以下のコマンドを打つ
これ以降、コマンドはエディタ内のターミナルで実行します
# 新しいプロジェクトの作成
npx create-expo-app --template
どんなプロジェクトを作りたいか聞かれるので、回答していきます。
例:
- Choose a template >> Blank(TypeScript)
- What is your app named? >> TestApp
成功するとこのような表示になり、フォルダ内に初期フォルダ、ファイルが作られます。
↓自動生成されたファイル群
これで準備は完了です。
③ Expo Goでの実機確認
Expo GoをApple Storeからインストールします。
ターミナルで start
コマンドを実行すると、QRコードが表示されます。iPhoneのカメラでこのQRコードをスキャンするだけで、開発中のアプリを実機で即座に確認できます。
npx expo start
↓iPhoneカメラで読み取りExpoGoを開くと、ロード開始
↓Expo Go読み取り後の初期表示はこんな感じです。iPhone、Andoroid共に実機確認ができます。
↓例えばApp.tsxにアラートが出るボタンを追加してみると、即座に変更が反映されました。
クロスプラットフォームを目指す場合は、同じ書き方でも端末によって見た目が変わるのが注意点ですね。
④ AIを使ってコーディング
Expo Goで動作を見ながら、アプリのメイン機能を作っていきます。
今回は話題のAIエディタ「Cursor」を使用しました。
使い方は既に記事があふれているので省略しますが、特に驚いたのがエラーチェックと修正を勝手に繰り返してくれるところです。
実際の画面を見てみましょう。
画像左の赤や緑のハイライトはAIによるコード修正結果、画像右にAIへの指示やAIからの回答が表示されています。
その中で注目して欲しいところはここで、エラーチェックとチェックをもとにした再修正を開始しています。これはエラーがなくなるまで勝手に繰り返してくれました。
このおかげで、指示さえしっかりしていればかなりの精度でそのまま動作するコーディング結果を返してくれます。
このように開発を進めていきます。
そしてリリースできる段階まできたら次はアプリのビルドに入ります。
4-2. アプリのビルド:EAS buildでクラウド任せ!
アプリの開発が進み、いよいよリリース準備です。Expoの提供するEAS (Expo Application Services) は、MacがなくてもApple Developerアカウントと連携し、クラウド上でビルドを実行してくれます。
① ビルド準備
以下のコマンドを実行します。
ターミナルから返ってくる応答に従い、ログインとビルドファイルの作成を行います。
#eas管理ツールインストール
npm install -g eas-cli
#easがインストールできたことを確認
eas -v
#expoにログイン
eas login
#ビルド設定ファイル(eas.json)を生成
eas build:configure
② ビルドコマンドの実行
以下のコマンドでiOSアプリのビルドをEASに依頼します。
eas build --profile production --platform ios
ビルドが開始されるとクラウド上で処理が進み、完了するとApp Store Connectに提出するための成果物(.ipaファイル)が作られます。
↓「Waiting for build to complete」と表示されればOK!後はクラウドビルド完了を待ちます。
↓クラウドビルドが完了すると、Expo管理画面にこのような緑✓アイコンがつきます。
(eas build 実行時、Appleアカウント認証ができない場合)
・Apple developerのサイトでログインができることを確認します。
https://developer.apple.com/jp/ ・以下のコマンドを実行します
・いくつか質問を受けるので、以下のように回答していきます。
・認証情報が設定できたら、再度EAS Buildを実行します。 |
4-3. App Storeへの提出:EAS submitが代行!
ビルドが完了したら、次はApp Store Connectへアプリを提出する工程です。
ターミナルで以下を実行します。
#ビルドした.ipaファイルをApple Store Connectへアップロードする
eas submit --platform ios
↓アップロードが完了すると、Expo管理画面のSubmissionsページに緑✓が表示されます。
4-4. App Store Connectでの設定:Windowsから最後の仕上げ
ここまでくればあと一息ですが、まだ気は抜けません。
最後の仕上げはApp Store Connectにアクセスして行います。
必要な情報の入力
アプリ名、カテゴリー、説明文、スクリーンショット、アプリアイコン、プライバシーポリシーに関する情報など、アプリを公開するために必要な情報を全て入力していきます。
こちらに素晴らしい解説があるので、詳細はこちらをご参照ください。
↓eas submitが成功していると、ビルドファイル選択画面でファイルが選択できるようになっています。
4-5. Appleへの審査提出
すべての情報入力が完了したらいよいよAppleへの審査提出が可能になります。
Apple Store Connectの提出ボタンを押して、ドキドキしながら審査結果を待ちましょう!
💡 振り返り:AIとExpoが切り開いた新しい開発体験
実はCursorに出会ったのはかなり後半からで、初期構想からリリースまでには1年半近くもかかってしまいました。認証機能はどうやって作るのか、このエラーは一体何が原因なのかと進んでは戻ってを繰り返していましたが、Cursorを活用し始めてからはその進捗が劇的に加速。これまで時間や知識不足で諦めていた部分をAIが強力にサポートしてくれたおかげで、一気にリリースが現実へと近づきました。
Macがないという障壁も、EASという頼れるサービスが解決してくれました。高価な機材がなくても、アイデアと学習意欲があれば、個人開発の夢は十分に掴める時代になったと実感しています。
今後も、モバイル開発(React Native/Expo中心)のTipsや開発ノウハウなどを発信していければと思います。AI分野の記事もそのうち書けたら嬉しいです!