Macを持たずにiOSアプリをApp Storeに公開する
Macを持っていなくても、iOSアプリは公開できます。ただし、macOSなしでは公開できません。アプリのビルドと署名にはXcodeが必要です。それ以外のほとんどは、ブラウザかiPhoneで済みます。macOSが必要な1ステップは、レンタルのMacかCIのrunnerでまかなえます。
2026年10月時点でAppleが求めているもの
- 有料のメンバーシップ。Appleの登録ページによると、Apple Developer Programはメンバーシップ1年あたり99 USDです。非営利団体、教育機関、政府機関は、費用の免除を申請できます。
- 新しいXcode。2026年4月28日以降、アップロードするアプリはXcode 26以降とiOS 26 SDKでビルドする必要があります。Appleの今後の要件のページに記載されています。
- 新しいmacOS。AppleのXcodeのシステム要件によると、Xcode 26.6にはmacOS Tahoe 26.2以降が必要です。
つまり、ビルドはMacの上で行います。問題は、誰のMacを使うかだけです。
WindowsやLinuxからできること
- Webか、Apple Developerアプリで、プログラムに登録する。
- App Store Connectでアプリのレコードを作成する。
- App Store ConnectのAPIキーを作成する(手順は下記)。
- テスターの追加、ストアの掲載情報の作成、審査への提出。
- 完成したビルドのアップロード。AppleのTransporterのコマンドラインツールは、Windows 11とRed Hat Enterprise Linuxに対応しています。これらのOSでは、Xcodeがエクスポート時に書き出すAppStoreInfo.plistが必要です。つまりアップロードはPCでできますが、そのファイルはやはりMacで作ります。
まずAPIキーを作成する
APIキーがあれば、Mac上のツールがAppleとやりとりできます。パスワードや2ファクタ認証の入力は不要です。チームキーを作るAppleの手順は次のとおりです。
- App Store Connectで「ユーザとアクセス」を開き、「統合」を選びます。
- 「App Store Connect API」を選び、「チームキー」タブを開きます。
- 「APIキーを生成」をクリックし、名前を付けてロールを選び、生成します。
- .p8ファイルをダウンロードします。ダウンロードできるのは1回だけです。
チームキーの作成には、Adminロールが必要です。そのページに表示されるキーIDと発行者IDを控えておきます。.p8ファイルはリポジトリに入れないでください。
自分のキーチェーンなしで署名する
署名には、配布用の証明書とプロビジョニングプロファイルが必要です。レンタルしたMacでそれらを用意する方法は2つあります。
自動署名。xcodebuildはAPIキーを受け付けます。ヘルプによると、allowProvisioningUpdatesフラグを付ければ、自動署名のターゲットについて、プロファイル、App ID、証明書を作成、更新します。Appleはクラウド管理の配布用証明書も提供しています。これはAppleが保管するので、レンタルしたマシンに秘密鍵が置かれることはありません。
手動署名。レンタルしたMacのキーチェーンアクセスで、証明書署名要求を作成します。次に「Certificates, Identifiers and Profiles」で、Apple Distribution証明書とApp Store用のプロファイルを作ります。Macを返す前に、キーチェーンを消去してください。
クラウドのMacからビルドしてアップロードする
アプリをアーカイブします。名前、キーID、発行者IDは、ご自身のものに置き換えてください。
xcodebuild -workspace MyApp.xcworkspace -scheme MyApp \ -configuration Release -destination 'generic/platform=iOS' \ -archivePath build/MyApp.xcarchive archive \ -allowProvisioningUpdates \ -authenticationKeyPath ~/private_keys/AuthKey_ABC123DEF4.p8 \ -authenticationKeyID ABC123DEF4 \ -authenticationKeyIssuerID YOUR-ISSUER-ID
次にエクスポートします。destinationをuploadにすると、エクスポートでビルドがそのままApp Store Connectに送られます。メソッド名のapp-store-connectは、以前のapp-storeという値に代わるものです。
<?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>method</key><string>app-store-connect</string> <key>destination</key><string>upload</string> <key>signingStyle</key><string>automatic</string> <key>teamID</key><string>YOURTEAMID</string> </dict> </plist>
xcodebuild -exportArchive -archivePath build/MyApp.xcarchive \ -exportOptionsPlist ExportOptions.plist -exportPath build/export \ -allowProvisioningUpdates \ -authenticationKeyPath ~/private_keys/AuthKey_ABC123DEF4.p8 \ -authenticationKeyID ABC123DEF4 \ -authenticationKeyIssuerID YOUR-ISSUER-ID
アップロードを別のステップにしたい場合は、destinationをexportにして、altoolを使います。altoolはIDをもとに、~/private_keysにあるキーファイルを見つけます。
xcrun altool --upload-package build/export/MyApp.ipa \ --api-key ABC123DEF4 --api-issuer YOUR-ISSUER-ID
fastlaneを使うなら、ドキュメントにある2つのアクションで同じことができます。app_store_connect_api_keyがキーを読み込み、pilotがTestFlightにアップロードします。
上のフラグはすべて、Xcode 26.6のxcodebuildとaltoolのヘルプ出力と照らし合わせて確認しました。ただし、この行のとおりに署名付きのアップロードを実行したことはありません。細かい点は、ご自身のプロジェクトの署名設定によって決まります。
バージョン番号とビルド番号
Appleは各アップロードを、バンドルIDとバージョン番号でアプリと照合します。ビルド文字列は各ビルドを識別するので、一意でなければなりません。アップロードのたびにビルド番号を上げてください。CIでは、実行番号を使うと便利です。バージョン番号は、ストアでユーザーに見せるためのものとして取っておきます。
iPhoneでのTestFlight
Appleは各アップロードを処理し、準備ができるとメールで知らせます。その後は、App Store Connectとスマートフォンで進めます。AppleのTestFlightの概要によると、次のとおりです。
- App Store Connectのチームから、最大100人の内部テスター。
- メールか公開リンクで、最大10,000人の外部テスター。
- 外部テスター向けの最初のビルドは、App Reviewに回ります。
- 各ビルドは最大90日間テストできます。
テスターは無料のTestFlightアプリをインストールし、招待を承認します。このどれにもMacは不要です。ストア用のスクリーンショットは、レンタルしたMacのシミュレータで簡単に撮れます。
この用途でMacを借りるべきでない人
Expoなら、EAS BuildとEAS Submitが、Expoのクラウドでビルドとアップロードを行います。リリースが年に2回なら、ホスト型のCI runnerでビルド1回あたり数セントです。その設定はGitHub ActionsでのiOS CI/CDをお読みください。MacRunはマネージドのコード署名を提供していません。証明書とキーはご自身で管理します。
レンタルのMacが向いているのは、頻繁にリリースする場合です。Xcodeの画面で署名を手作業で直す必要がある場合にも向いています。当社のM6のプランは料金ページにあります。
よくある質問
MacなしでiOSアプリを公開できますか?
+
はい、どこかでmacOSを使えるなら可能です。ビルドと署名にはMac上のXcodeが必要ですが、そのMacはレンタルやクラウドのMacでかまいません。登録、App Store Connect、TestFlight、審査は、すべてブラウザかiPhoneでできます。
WindowsからApp Store Connectに.ipaをアップロードできますか?
+
AppleのTransporterのコマンドラインツールは、Windows 11とRed Hat Enterprise Linuxに対応しています。これらのOSでは、Xcodeがビルドと一緒にエクスポートするAppStoreInfo.plistが必要です。そのため、.ipa自体はやはりMacでビルドする必要があります。
2026年にアップロードするには、どのXcodeが必要ですか?
+
2026年4月28日以降、App Store ConnectにアップロードするアプリはXcode 26以降とiOS 26 SDKでビルドする必要があります。Xcode 26.6はmacOS Tahoe 26.2以降で動きます。
App Storeでの公開にはいくらかかりますか?
+
Apple Developer Programは、メンバーシップ1年あたり99 USDです。条件を満たす非営利団体、教育機関、政府機関には費用の免除があります。ビルドに使うMacの費用は別です。ホスト型CIならビルド1回あたり数セント、レンタルなら月額料金です。