Apple 開発者プログラム徹底解説:無料と有料の比較

Apple の年額 99 ドルは iOS 開発の入場料ではない。Expo Go と無料の開発ビルドから、有料プランが実際に解き放つものまで、0 ドルから 99 ドルまでの道のりを三段階で整理する。

日本語
コピー
Rami 在 Xcode 图标旁微笑,一个开关指向 $0 而不是每年 $99,上方写着 Before you buy

多くの開発者が、Apple Developer Program は iOS 開発の入場料だと思っている。まだ必要になる前にとりあえず登録したり、逆に iOS には手を出さないでおいたりする。

だが実際には、Expo アプリを無料でビルドして自分の iPhone で動かせる。誰かに共有したくなった段階で登録すればいい。この記事では3つのレベルに分けて、0 ドルから 99 ドルまでの道筋を整理する。各レベルで何が必要か、何ができるようになるか、どこに制限があるか。読み終えれば、初日から登録すべきなのか、まず手を動かして App Store に公開する段階になってから登録すればいいのかが分かるはずだ。

動画版

99 ドルなしでどこまで行ける?

簡潔な回答

3枚のカード。レベル1、iPhone 1台と任意のコンピューター、0 ドル:Expo Go、Fast Refresh、ほとんどの Expo SDK、Apple アカウント不要、Expo Go のライブラリに制限。レベル2、iPhone 1台と Mac 1台、0 ドル:開発ビルド、任意のネイティブライブラリ、独自のネイティブコード、7日間・iPhone 1台につき3アプリ・自分の iPhone のみ・有料機能なしに制限。有料、Apple Developer Program、年間 99 ドル:TestFlight と内部配布、クラウド署名、リモートプッシュ、アプリ内課金、Apple でサインイン、NFC、App Store、最長1年間有効なビルド
手元にあるものできること費用
任意のパソコン1台とiPhone 1台Expo Goで開発。Fast RefreshとExpo SDKの大部分に対応0 ドル
Mac 1台とiPhone 1台任意のネイティブライブラリを含む開発ビルドを作成し、自分のiPhoneにインストール0 ドル
Macはないが、実機のiPhoneにアプリを入れたいExpo Buildでクラウド上でビルドと署名を行う年間 99 ドル
他の人にもアプリを使ってもらいたいTestFlight、内部配布、App Store年間 99 ドル

レベル1:任意のパソコン+iPhone 1台、Expo Goで開発する

必要なのはiPhone 1台とパソコン1台だけ。Windows、Linux、macOSのどれでも構わない。App StoreからExpo Goをインストールし、プロジェクトを作成して起動する:

npx create-expo-app@latest
npx expo start

iPhoneのカメラでQRコードを読み取れば、Expo Goでアプリが開く。ファイルを保存するたびにFast RefreshがiPhone上のアプリを更新する。

ロードマップ レベル1:Expo Go をインストールし、npx create-expo-app と npx expo start でプロジェクトを作成・起動し、QR コードをスキャンすれば iPhone でアプリが動く。ここまでの費用:0 ドル

この層にはAppleアカウントが一切不要だ。Expo GoはExpoが自らビルドして署名し、App Storeで公開しているアプリなので、iPhoneは他のアプリと同じように扱う。

その代償として、Expo Goに組み込まれたネイティブコードは固定されている。JavaScriptは書き換えられるが、ネイティブライブラリはExpo Goに入っているものしか使えない。このライブラリ群はExpo SDKの大部分をカバーしており、expo-camera、expo-maps、@expo/ui、そしてreact-native-reanimatedなどの人気コミュニティライブラリも含まれる。独自のネイティブコードを必要とする機能はExpo Goでは使えない。

  • expo-widgetsで実装するホーム画面ウィジェットとライブアクティビティ。
  • expo-app-intentsで実装するSiriとショートカット。
  • ネイティブコードを含むがExpo Goに入っていないライブラリ、および自分で書いたネイティブコード。

これらには開発ビルドが必要だ。

第2層:Macで開発ビルドを作る

開発ビルドは自分専用のExpo Goだ。Expo Goでおなじみのexpo-dev-clientツールが入っている。違いは、中のネイティブコードが自分のものになること。任意のネイティブライブラリ、任意のネイティブ設定、自作のネイティブモジュール。Fast Refreshもそのまま使える。ストアに出すつもりのアプリには、開発ビルドを勧める。

Macがあれば、無料でビルドしてiPhoneにインストールできる。iPhoneを接続して次を実行する:

npx expo run:ios --device

XcodeがMac上でアプリをコンパイルして署名し、端末にインストールする。署名にはAppleアカウントが要るが、有料アカウントは不要だ。無料のAppleアカウントでXcodeにサインインすると、Personal Teamという署名チームが割り当てられる。

初回実行時、CLIがビルド開始前に止まることがある:

Expo CLI の出力:物理的な iOS デバイスにビルドする前に、コンピュータで追加のセットアップが必要。詳細を見る。CommandError: 利用可能なコード署名証明書がない。

Mac にコード署名証明書がまだない、ということだ。スクリーンショットの Learn more リンクを開くと簡単な設定ガイドが表示され、Apple アカウントで Xcode にサインインする手順が書かれている。一度そのとおりに設定してから、コマンドをもう一度実行する。

ロードマップ レベル2:iPhone を接続し、無料の Personal Team で Xcode にサインインしてから、npx expo run:ios --device を実行する。看板には無料署名の制限が書かれている:自分のデバイスのみ、7日間、3個のアプリ、リモートプッシュ非対応

無料署名の制約

Apple は無料の Personal Team に次の制約を設けている。

  • App は 7 日で失効する。 Apple の無料プロビジョニングプロファイルは作成から 7 日で無効になる。以降 App は起動できなくなるため、ビルドをもう一度やり直す必要がある。
  • 1 台のデバイスにつき最大 3 個の App。 この方法で iPhone 1 台にインストールできるのは 3 個まで。
  • 自分のデバイスにしかインストールできない。 登録できるデバイスは最大 3 台で、ビルドを他人に渡すことはできない。
  • 有料の機能は使えない。 リモートプッシュ通知、App 内課金、Sign in with Apple、NFC、iCloud、Apple Pay、関連ドメインには有料メンバーシップが必要で、開発段階でも例外はない。ライブラリを導入してコードを書くところまではできるが、ビルドがこれらの機能を要求すると、Xcode は無料アカウントで署名を完了できない。

Apple の機能サポート表によると、無料アカウントでも使える機能がいくつかあり、App Groups、Background Modes、HealthKit、HomeKit、Keychain Sharing、Maps が含まれる。expo-widgets は App Groups を使って、App とそのウィジェットの間でデータを共有する。

ローカル通知は App がデバイス上で自分でスケジュールするもので、プッシュの機能は要らない。必要なのはサーバーから送るリモート通知だけだ。

Mac がない場合、クラウドビルドには有料プランが必要

Windows や Linux でも iOS App はビルドできる。Expo Build がクラウド上の Mac でコンパイルを実行する:

eas build -p ios

このビルドを iPhone にインストールするには Expo Build による署名が必須で、クラウドでの署名には有料プランが必要になる。

Macがなくても大丈夫?ロードマップの枠組み:自分のコンピュータからeas build -p iosを実行すると、Expo Buildがクラウド上のMacでコンパイルし、証明書とプロビジョニングプロファイルでiPhoneに署名する。Mac上では署名は無料。クラウドでは99ドルのメンバーシップが必要

証明書とプロビジョニングプロファイルの役割分担

デバイス上で動く iOS アプリは、2つのもので署名されている。

  • 証明書は、そのアプリを誰がビルドしたかを示す。
  • プロビジョニングプロファイルは、そのアプリをどこで動かせるかを示す。どのアプリに属するか、どの iPhone にインストールできるか、どのケイパビリティが使えるか、いつ失効するか。

iPhone はアプリを開く前に、この2つを確認する。プロビジョニングプロファイルが失効すると、新しいビルドをインストールしない限りアプリは開けない。

すべての iPhone アプリは署名されている。あなたのアプリに、証明書(誰がビルドしたか)とプロビジョニングプロファイル(どのアプリ、どの iPhone、どの機能、有効期限)を加えたものが一緒にあなたの iPhone に転送され、両方が一致した場合にのみ iPhone はそのアプリを開く

署名方式によって、その App をインストールできる人が決まる。無料の Apple アカウントでは開発用署名しか得られない。Ad hoc 署名と App Store 署名は配布用証明書を使うが、この証明書を取得できるのは有料の Apple Developer Program メンバーだけだ。

3 つの署名方法。開発署名:無料または有料アカウント、Mac 上の Xcode で生成され、開発証明書を使用し、自分の iPhone にインストール、無料版の有効期間は 7 日間、有料版は最長 1 年。Ad hoc 署名:有料アカウント、Expo Build または Xcode で生成され、配布証明書を使用し、登録した iPhone にインストール、年間最大 100 台、内部配布用。App Store 署名:有料アカウント、Expo Build または Xcode で生成され、配布証明書を使用し、誰でも TestFlight または App Store 経由でインストール可能、デバイスリスト不要。

Mac では、Xcode が無料の Personal Team 用の開発署名を作成する。クラウド側では、Expo Build が配布証明書と ad hoc プロビジョニングプロファイルを使ってデバイス向けのビルドに署名する。つまり、Mac がなければ、実機の iPhone で開発ビルドを動かすには有料プランが必要だ。

どのコンピュータでも、iOS Simulator 向けのビルドは無料で行える。シミュレータ向けのビルドはデバイス向けの署名を行わないため、Expo Build は Apple Developer アカウントなしで完了できる。ただし、それを動かす場所は依然として必要で、今日ではそれは通常 Xcode をインストールした Mac を意味する。

年間 99 ドルで使えるようになるもの

Apple Developer Program の年会費は 99 ドルだ。結局のところ、これで得られるのは次の 5 つだ。

99ドルで解放される内容:共有への5つの道(TestFlightまたはExpo)、クラウド署名(デバイス向けExpo Build)、リモートプッシュ(あなたのサーバーから送信)、アプリ内課金(およびSign in with Apple、NFCなど)、そしてApp Store(全員に公開)。下の看板にはこう書かれている:稼ぎたい?Small Business Program、30%ではなく15%

1. アプリを他の人に配布する

無料の署名は自分のデバイスでしか使えない。メンバーシップに加入すると、ビルドを他の人に渡す方法が2つある。

  • TestFlight。 TestFlight は Apple のベータテスト用アプリだ。外部テスターは最大10,000人まで招待でき、公開リンクを共有することもできる。
  • Expo Build による内部配布。 テスターはリンクからビルドをインストールする。この方法は ad hoc provisioning を使うため、すべての iPhone を事前に登録する必要があり(eas device:create)、新しいデバイスに変えるたびにビルドし直すことになる。この方法で Apple が年間に許可する iPhone は最大100台だ。

2. クラウド署名

Expo Build は iOS 証明書の作成と管理、そしてデバイス向けのビルド署名を行える。これにはメンバーシップが必要で、その理由は「Mac がない場合」の節で説明している。

3. リモートプッシュ通知

バックエンドから送る通知は Apple Push Notification service を経由するため、有料アカウントが必要だ。ローカル通知なら不要。

4. アプリ内課金とその他の Apple の機能

先ほど無料署名の制限で触れた有料機能、たとえばアプリ内課金、Sign in with Apple、NFC などがこれにあたる。無料アカウントでは、これらの機能を要求するビルドに署名できない。デバイス上で試すにはメンバーシップが必要で、ストアに公開するときだけの話ではない。

5. App Store

App Store への公開にはメンバーシップが必要だ。アプリが収益を上げ始めたら、Apple の App Store Small Business Program を確認してみるといい。前暦年の収益が 100 万ドル以下であるか、App Store の新規開発者であれば対象になる。Apple が有料アプリとアプリ内課金から取る手数料が 30% から 15% に下がる。利用するには自分で登録する必要がある。

有料アカウントは、自分でビルドするときの有効期限も変える。有料チームが発行する開発用プロビジョニングプロファイルは最長1年間有効で、7日間ではない。毎週ビルドし直す必要はなくなる。

有料にすべきなのはどんなときか

広告ボードにはこう書かれている:プッシュ通知、アプリ内課金、本物のiPhoneが必要だがMacがないなら、初日から有料。それ以外の人:まず作って、共有するときに支払う。有料ビルドは7日間ではなく1年間有効

アプリが次のいずれかを必要とするなら、初日から課金が必要になる:

  • リモートプッシュ通知。開発中にテストしたいから。
  • アプリ内課金。理由は同じ。
  • 実機の iPhone はあるが Mac がない。 クラウド署名が、アプリを端末に入れる唯一の手段になる。

それ以外の人はアプリを丸ごと無料で作り、誰かに渡す段階になってから登録すればいい。

Android は?

Android ロードマップの分岐点:無料でビルド、実行、テストし、Google Play Store に入る前に一度だけ 25 ドルの通行料を支払う

Android は開発からリリースまで一貫して無料だ。ビルド、インストール、ビルド成果物の共有のどこにも費用はかからない。Play Store に公開する段階になって初めて、Google Play Console アカウントの登録に 25 ドルの一回払いが必要になる。

どこから始めるか

  • 今日すぐに、レベル1から始める。 npx create-expo-app@latest を実行し、Expo Go でプロジェクトを開く。
  • ネイティブコードが必要になったら開発ビルドに切り替える。 まず Introduction to development builds を読み、Local app development に沿って iPhone 上で動かす。
  • 共有する段階になってから登録する。 Apple Developer Program に加入し、内部配布 または TestFlight を設定する。
フレームワークを振り返る:開発は無料。配布に99ドル。ビルド:0ドル、実行:0ドル、テスト:0ドル。npx create-expo-app、ここから始めよう

よくある質問

Expo の利用に Apple 開発者アカウントは必要か? いいえ。Expo Go で開発する限り、Apple アカウントは一切不要だ。必要になるのは、アプリを共有・公開する場合、クラウドで署名済みビルドを作成する場合、リモートプッシュ通知などを利用する場合に限り、有料の Apple Developer Program だ。

iPhone で Expo アプリを無料で動かせるか? はい。Expo Go ならどの iPhone でも無料でプロジェクトを動かせる。Mac と無料の Apple アカウントがあれば、npx expo run:ios --device で開発ビルドをインストールすることもできる。

無料の iOS ビルドはどのくらい使えるか? 7 日間だ。Apple の無料プロビジョニングプロファイルは作成から 7 日で失効し、この方法でインストールできるアプリは 1 台あたり最大 3 個までだ。有料チームの開発用プロファイルは最長 1 年間有効だ。

Mac がなくても Expo で iOS アプリをビルドできるか? はい。Expo Build なら Windows や Linux からクラウド上で iOS アプリをコンパイルできる。ただし、そのビルドを iPhone にインストールするには有料の Apple Developer Program が必要だ。クラウドでの署名には配布証明書を使うためだ。

無料アカウントでもプッシュ通知をテストできるか? ローカル通知は可能だ。自分のサーバーから送るリモート通知には有料の Apple Developer Program が必要だ。

Expo アプリの公開にはいくらかかるか? iOS は Apple Developer Program が年間 99 ドル。Android は Google Play Console アカウントの一回払いで 25 ドルだ。

参考リンク

出典: Expo Blog← ホームへ戻る