ガイド

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回あたり数セント、レンタルなら月額料金です。

関連ガイド