質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

App Store

App Storeは、Apple社が運営する、iPhone、iPod touch、iPad向けアプリケーションソフトのダウンロードサービスです。携帯電話、Wi-Fiによる無線通信に対応しており、多くのアプリケーションをダウンロード、インストールすることができます。世界中の開発者によってアプリケーションが登録されており、有償のソフトもあればフリーソフトも多く登録されています。

Q&A

解決済

2回答

707閲覧

iOS SwiftyStoreKitを使用しての課金処理の実装について

cshintaku

総合スコア34

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

App Store

App Storeは、Apple社が運営する、iPhone、iPod touch、iPad向けアプリケーションソフトのダウンロードサービスです。携帯電話、Wi-Fiによる無線通信に対応しており、多くのアプリケーションをダウンロード、インストールすることができます。世界中の開発者によってアプリケーションが登録されており、有償のソフトもあればフリーソフトも多く登録されています。

0グッド

0クリップ

投稿2018/10/17 07:54

In-App Purchase(自動更新購読 Auto-Renewing subscription)の実装に、SwiftyStoreKitというライブラリを使用し取り組んでいるのですが以下の疑問があります。

  1. 課金処理の流れ『Xcode側での処理』
  2. 製品情報を取得できない

1.についてなのですが、App Store Connect ヘルプや課金処理関連の記事を見た所

  • 購入可能な製品情報を取得
  • ユーザーが選択した製品を購入
  • 購入が完了すると、機能などの解放やフラグ切り替え
  • レシートの検証

の認識で合ってますでしょうか?


2.については

Swift

1 SwiftyStoreKit.retrieveProductsInfo(["製品ID"]) { result in 2 if let product = result.retrievedProducts.first { 3 let priceString = product.localizedPrice! 4 print("Product: (product.localizedDescription), price: (priceString)") 5 } 6 else if let invalidProductId = result.invalidProductIDs.first { 7 print("Invalid product identifier: (invalidProductId)") 8 } 9 else { 10 print("Error: (String(describing: result.error))") 11 } 12 }

の引数に製品IDを渡すと製品情報を取得できるらしいのですが、Invalid product identifierが出力されます。
なぜでしょうか?
追加の資料や確認事項などは、すぐにお答えします。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

SwiftyStoreKitは把握していないのですが、もしかしたら? と思うことがあったので参考までに。
古い記憶なので、細かいところは間違っているかもしれませんのでご了承下さい。

実機で実行している前提ですが、その端末に紐付いているAppleアカウントとは該当の製品を購入可能なアカウントでしょうか。
まだ一度もリリースしていないのであれば、Sandboxアカウントを用意してそのアカウントを利用する必要があった気がします。

投稿2018/10/17 10:40

YasuhiroMiyake

総合スコア1336

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cshintaku

2018/10/17 21:18

YasuhiroMiyakeさん、回答ありがとうございます。 指摘して頂いた通りApp Store ConnectからSandboxテスターを追加して、実機でテストしております。
YasuhiroMiyake

2018/10/18 01:40

上記のコードで製品IDの部分を置き換えると商品の説明と価格が返されました。 そのため、コード自体は特に問題ないと思います。 準備している商品、あるいはSandboxアカウント(商品が提供可能な国になっているか?) を再度確認することになると思います。
cshintaku

2018/10/18 01:49

Sandboxアカウントは先程も作成し直し(実機からサインインはしていない)、試しましたが結果に変化なしでした。 現在はApp Store Connectに登録した製品の見直しと、「契約/税金/口座情報」の設定が製品IDの取得に関係がないか調査しております。
guest

0

自己解決

App Store Connectの契約/税金/口座情報のTax Infoの設定を完了させ、少し時間が経つと製品情報を取得できるようになりました。

契約/税金/口座情報の3つの手続きは完了必須なのですね。
勉強になりました。

投稿2018/10/18 04:16

cshintaku

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問