ネイティブプロジェクト
広告、課金、そして管理してくれる開発者のための、完全なスマートフォン用プロジェクトです。
Nativeでは、アプリ全体をスマートフォン用プロジェクトとして受け取れます。1つのZIPで受け取るか、GitHubリポジトリにプッシュします。まず、アプリの名前とcom.yourcompany.yourappのようなアプリIDを入力します。このIDはストアがアプリを識別するためのもので、公開した後は変更できません。
続いてウィンドウに、AndroidとiPhone向けのビルド用コマンドがそのまま表示されます。
npm install && npm run build
npx cap add android
npm run icons
npx cap sync && npx cap open androidiPhoneでは、iosがandroidの代わりになり、最後のコマンドでXcodeが開きます。
ここからは各ストア自身の手順です。Android StudioまたはXcodeでアプリに署名し、アップロードしてテストし、ストアページを入力してリリースします。Androidの署名キーとそのパスワードは大切に保管してください。すべてのアップデートに、同じキーでの署名が必要です。 Android Studio や Mac がなくても、GitHub がビルドできます:クラウドでビルド。
プロジェクトの入手:ダウンロードまたはGitHub
ステップ1のDownload the projectには、App nameとApp IDの2つの入力欄があります。IDはcom.setherion.にアプリの名前を続けた形から始まり、逆ドメイン形式で書く必要があります。「Download project (.zip)」は、アプリの名前が付いたZIPを作ります。中には、ウェブプロジェクト、スマートフォン用のファイル、アプリにテーブルがある場合のschema.sql、ゲームのアート、アイコンと起動画面の画像が入っています。有料プランが必要です。
代わりに、or push to GitHubを使うこともできます。Connect with GitHubで接続するか、トークンを貼り付け、Repo nameを選んでExport to GitHubを押します。リポジトリはプライベートで作成され、Open repoでそのリポジトリを開けます。こちらも有料プランが必要です。
AndroidのNative:ステップごとの手順
- Download the project:上の手順のとおりです。
- ビルドする:Node 22とAndroid Studioが必要です。ウィンドウに表示されるコマンドを実行します。アプリが広告や課金を使う場合は、
npm run native:setupがnpx cap add androidの後に加わります。 - 署名する:Android StudioでBuildを選び、次にGenerate Signed App Bundleを選びます。キーを作成し、キーとそのパスワードを保管してください。すべてのアップデートに同じキーが必要です。
- アップロードしてテストする:Play Consoleでアプリを作成し、.aabをInternal testingにアップロードしてから、ストアページ、コンテンツのレーティング、Data safetyを入力します。広告を使う場合は、広告IDも申告します。
- リリースする:審査には数時間から2日ほどかかります。2023年11月以降に開設した個人のGoogle Playアカウントでは、最初にクローズドテストが必要です。
iPhoneのNative:ステップごとの手順
- Download the project:Androidと同じZIPです。
- ビルドする:XcodeのあるMacと、年額$99のApple developerアカウントが必要です。
iosをandroidの代わりに使って、同じコマンドを実行します。 - 署名してアップロードする:XcodeでSigning & Capabilitiesを開き、チームを選びます。広告や課金を使う場合はIn-App Purchaseを追加します。続いてProduct、Archive、Distributeの順に進み、App Store Connectに送ります。
- iPhoneで試す:TestFlightを使います。
- ストアページを入力して審査に提出する:広告を使う場合、Appleは広告をトラッキングとして扱います。
クラウドでビルド
Android Studio も Mac も不要です。GitHub が自社のコンピューターでアプリをビルドできます。ステップ1でプロジェクトを GitHub にプッシュすると、リポジトリに Android 用と iPhone 用の2つのビルドワークフローが入ります。その後、Build it ステップに Build it in the cloud が表示され、GitHub 上のワークフローのページへ移動するボタンがあります。
GitHub で Actions を開き、Android build か iPhone build を選び、Run workflow を押して、ビルドする内容を選びます。
| ワークフロー | 選択肢 | 得られるもの |
|---|---|---|
| Android build | Test APK | 自分のスマートフォンにインストールできるアプリ。実行の Artifacts にあります。準備は不要です。 |
| Android build | Make a new key | 署名鍵。Google Play への最初のアップロード前に一度だけ作ります。プライベートリポジトリでのみ使えます。 |
| Android build | Google Play bundle (.aab) | Play Console 用の署名済みファイル。実行のたびにバージョン番号が上がります。 |
| iPhone build | Check that it builds | アプリが iPhone 向けにコンパイルできることの確認。Apple アカウントは不要です。 |
| iPhone build | TestFlight | 署名されて App Store Connect に送られたアプリ。TestFlight でインストールできます。 |
プライベートリポジトリでは、GitHub のコンピューターを月 2,000 分まで無料で使えます。Android のビルドは数分で、Mac の1分は10分として数えられます。各手順はリポジトリの README にあります。
最初の Google Play bundle の前に
- Make a new key を実行し、その実行から upload-key をダウンロードします。
upload.jksとそのパスワードを、リポジトリの外の安全な場所に保管します。すべての更新は同じ鍵で署名する必要があります。- リポジトリで Settings、Secrets and variables、Actions を開き、それぞれのファイルの内容で3つのシークレットを追加します:
ANDROID_KEYSTORE_BASE64、ANDROID_KEYSTORE_PASSWORD、ANDROID_KEY_ALIAS。 - Google Play bundle (.aab) を実行し、ファイルを Play Console の Internal testing にアップロードします。
最初の TestFlight ビルドの前に
- App Store Connect で、ステップ1と同じアプリ ID でアプリを作成します。
- Users and Access、Integrations、App Store Connect API で Admin ロールのキーを生成し、その .p8 ファイルをダウンロードします。ダウンロードできるのは一度だけです。
- リポジトリに4つのシークレットを追加します:
APPLE_TEAM_ID(developer.apple.com の Membership details)、ASC_KEY_ID、ASC_ISSUER_ID、そして .p8 ファイルの内容のASC_KEY_P8。 - TestFlight を実行します。数分後、ビルドが App Store Connect の TestFlight に表示されます。ワークフローがアプリは標準的な暗号化のみを使うと Apple に伝えるため、TestFlight で質問されません。
クラウドビルドより前に作った GitHub 接続ではワークフローを追加できません。ステップにその旨が表示され、ステップ1の Reconnect で解決します。
スマートフォンアプリでのアカウント
スマートフォンアプリでは、メールアドレスとパスワードでログインします。Googleボタンと、メールで届くログインリンクは、そこでは非表示になります。そのため、Delete account buttonのチェックが重要です。Appleは、新規登録できるのにアカウント削除ボタンがないアプリを受け付けません。
広告と課金
広告を表示したり何かを販売したりするゲームが実際に機能するのは、Nativeプロジェクトだけです。広告はGoogle AdMob、課金は各ストアがRevenueCatを通じて提供します。エディタのプレビューではどちらも疑似的に動作し(「Test ad」、「Test purchase」で、お金は動きません)、試すことができます。公開したウェブサイトでは非表示になります。かんたんな方法では、ゲームは広告や課金なしで動きます。
プロジェクトは、収益の出ないGoogleのテスト広告で始まります。ご自身の広告IDとストアのキーをsrc/monetize.keys.jsonに入れて、npm run native:setupを実行してください。それぞれの入手先は、プロジェクトのREADMEに書かれています。
キーのファイルに入れるもの
このファイルには、AdMobのアプリID、AndroidとiPhone向けのリワード広告とインタースティシャル広告の広告ユニットID、各ストアのRevenueCatキー(Androidはgoog_、iPhoneはappl_で始まります)を入れます。RevenueCatのキーがない場合や、商品がない場合は、何も販売されません。
本物の広告を出すには、AdMobのアカウント、アプリ、広告ユニットを作成し、そのIDをファイルに入れて、新しいネイティブフォルダでnpm run native:setupを実行し、ウェブサイトにapp-ads.txtファイルを公開します。課金には、Play ConsoleとApp Store Connectで、src/monetize.jsonと同じIDの商品を作成し、両方のストアをRevenueCatのプロジェクトに接続します。iPhoneでは、In-App Purchaseのcapabilityを追加します。
どちらのストアもプライバシーポリシーへのリンクを求め、Restore purchasesボタンが必須です。このボタンはプロジェクトに用意されています。広告の間隔については、最初の30秒間、直前の広告から60秒以内、そして広告を削除する商品を購入したプレイヤーには、インタースティシャル広告を表示しません。
このページは役に立ちましたか?
