最近App内課金を実装したので、忘れないようにまとめています。
AppStoreConnectのフォーマットはちょくちょく変わってるので、ハマりそうな箇所を記事に書いてます。
AppStoreConnectでやることは主に以下の3つです。
- 契約/税金/口座情報の登録
- マイAppでApp内課金の登録
- テストユーザーの登録
参考にした記事
- アプリ内課金の実装方法 - TERAKOYA
https://terakoya.site/ios_dic/ios-dic-in-app-purchese/ - 契約/税金/口座情報の概要 - App Store Connect ヘルプ
https://help.apple.com/app-store-connect/#/devb6df5ee51 - App内課金のプロモーション - App Store - Apple Developer
https://developer.apple.com/jp/app-store/promoting-in-app-purchases/ - App Store ConnectでSandboxテスターを追加できないときはパスワードを見直す - Qiita
https://qiita.com/pompopo/items/96466afe2e6d4288cee2
契約/税金/口座情報の登録
銀行口座
、納税フォーム
、連絡先
の項目を入力していきます。
▼契約/税金/口座情報 / AppStoreConnect

- APP内課金をSANDBOXユーザーで試すには
契約/税金/口座情報
の登録は必須
です! - ※最低でも
「銀行口座」
と「納税フォーム」
は入力しておかないとステータスがアクティブにならないため、(課金周りのテストができない)ので注意です。 - 入力には
Admin
かFinance
以上の権限が必要です。
権限がない場合はAppStoreConnect上で上記のアイコンが表示されないで注意です。
▼有料App / 契約/税金/口座情報

▼銀行口座を入力

▼納税フォームを入力

▼連絡先を入力

- 所属先に下記役割の方がいない場合は同一のユーザーでも大丈夫そうです。
▼契約
マイAppでApp内課金の登録
▼マイApp

▼新規Appの追加

- 新規Appの追加には
Admin
かAccountHolder
以上の権限が必要です。
▼App内課金の追加
- 機能>App内課金>(+)

▼App内課金のタイプを選択

▼参照名と製品IDを入力

- 製品IDはコードで実装するProductIDと一致するものになります。
- 私は
アプリ名
.製品名
で登録しました。 ベストプラクティスがあれば教えてください。
▼ローカリゼーションを入力

- AppStoreに表示される名前になります。
▼App Store プロモーション(オプション)を入力


- プロモーションを登録するとアプリのプロダクトページからApp内課金を表示や購入することができます。
▼審査に関する情報を入力

- 製品のスクリーンショット or 購入ページのスクリーンショットを追加します。
テストユーザーの登録(WIP)👷♂️
▼ユーザーとアクセス

▼SANDBOX テスターを追加
▼テスターアカウントを追加

- メールアドレスは
hoge@hoge.com
でも通ります。実際に作成しているhoge@gmail.com
でなくても大丈夫です。 - 複数アカウントを作る際は連番で作成しました。
hoge1@hoge.com
、hoge2@hoge.com
など - パスワードは8文字以上+英数字+英字大文字+小文字が必要になります。
▼SANDBOXユーザーでログイン
- 設定>itunes StoreとApp Store>SANDBOXアカウントでサインインできます。
- シミュレーターではサインインできなかったため、実機でテストを行ってください。
- もしくは購入ボタン押下時、ログインしていない場合は、ログインを要求するダイアログが出るので、ダイアログからサインインできます。
// 購入ボタンを押した時の購入処理
SKPaymentQueue.default().add(SKPayment(product: productID)
おわりに
コードで実装編も書く予定です。👷♂️