問題タブ [storekit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 無効な製品 ID エラーを返す iPhone Store Kit
iPhone でアプリ内購入をテストしようとしていますが、情報を要求した製品 ID が「didRecieveResponse」メソッドで無効な製品 ID として返されるという問題が発生しています。
私は持っている:
- このアプリに関連付けられたストア製品を作成しました。バンドル ID は他のすべてと一致します。販売が許可され、開発者によって承認されました。
- 新しいプロビジョニング プロファイルでストア アプリの購入が有効になっていて、アプリの完全な名前が「com.domain.appname」であることを確認しました。
- これが、アプリを iPhone に署名するために使用されているプロビジョニング プロファイルであることを確認しました。
- 「com.domain.appname」がプロビジョニング プロファイルの作成に使用されるアプリ ID であることを確認しました。
- 「com.domain.appname」がバンドル識別子として plist ファイルで使用されていることを確認しました。
すべてが整っているように見えますが、製品が無効な ID として返されます。
これは私が使用しているコードです:
すべての製品 ID が無効なプリントアウトに表示され、"Product Info:" プリントアウトにはどれも表示されません。
どんな提案でも大歓迎です...
PS はい、これは Objective-c/c++ としてビルドされています。
ios - iPhone アプリ内購入ストア キット エラー -1003 「iTunes Store に接続できません」
アプリ内購入の追加に取り組んでおり、ストア キットを使用してアプリ内購入を作成およびテストすることができました (やった!)。テスト中に、購入中にアプリがクラッシュするような方法でアプリを実行しました (そのため、paymentQueue:updatedTransactions を受け取り、finishTransaction を呼び出す通常のサイクルが中断されたと思います)。
現在、トランザクションを正常に完了することができず、代わりに paymentQueue:updatedTransactions が呼び出されたときに transactionState SKPaymentTransactionStateFailed のトランザクションのみを取得しています。
transaction.error.code は -1003 で、transaction.error.localizedDescription は「iTunes Store に接続できません」です!
iTunesConnect からすべての製品を削除して、別の識別子を使用して再構築しようとしましたが、解決しませんでした。また、App Store アプリを使用して実際の App Store に実際に接続し、いくつかのアプリをダウンロードして、接続できるようにしました。最後に、Settings:Store アプリにアクセスして、通常のアプリ ストア アカウントからサインアウトしていることを確認しました。
iphone - アプリ内購入
アプリでアプリ内購入を使用したい。今、私は自分のアプリの半分の部分を作成しました。私の知る限り、アプリ内購入を使用してアプリを購入者に配信する方法は2つあります。1つ目は、アプリを完全に機能させる方法です。アプリをまだ購入していない場合は、このアプリの一部の機能をロックし、購入した場合は、機能のロックを解除する必要があります。2番目の方法は、サーバー側の配信を使用することでした。それについて言及する必要はありません。
最初のものを使うつもりですが、戸惑いました。最初のものを使用する場合、これは、アプリを購入したかどうかに関係なく、バイナリファイルが同じであることを意味します。それを使用しても安全ですか。アプリがすでに完成している場合、海賊はそれをハッキングする方法を考えます。
別の質問があります。アプリを3つの製品に分割する予定です。最初の部分には、私のターゲットユーザーの一般的に使用されるアイテムがありました。2つ目は、2つ目の便利なアイテムでよく使用されるものです。そして、3番目の部分には2つの部分と3番目の便利なアイテムが含まれています。私はこれらによってそれらを犠牲にすることを計画しています:
つまり、ユーザーが最初に購入した場合、5ドルの費用がかかります。その後、2番目の部品を購入した場合、最初の部品をすでに購入しているため、5ドルしかかかりません。
他の場合(ユーザーは何も購入していません)、2番目の購入を選択した場合、購入したアイテムがないため、10ドルの費用がかかります。
ストアキットframeWorkで行うことは可能ですか。
ところで、私は最初に最初のものをリリースすることを計画しています。そしてもう一方の時間には、最初と2番目のアイテムを含む2番目のものが続きます。そして、私のターゲットユーザーのためにアプリがクリックされる場合、3番目のものが行きます
これを実行して、ユーザーが必要なものだけを選択できるようにします。
iphone - SKPayementQueue:トランザクションの復元は、リリース構成で「updatedTransactions」を呼び出さずに終了しますが、デバッグ構成では終了しません
トランザクションの復元をデバッグしていますが、デバッグ構成ではすべてが正常に機能します。
IE私は呼ぶ:
しばらくして、queueCalls:
その後、次のように呼び出されます。
そして誰もが幸せです。
しかし、私のリリース構成では、updatedTransactionsの呼び出しが表示されないため、実際に購入を復元することはありません。
復元を試みた後、機能しない可能性があります。アプリケーションを再起動しましたが、ストアに製品リストを要求しても応答がありません。
iphone - アプリ内購入に restoreCompletedTransactions を使用するのはいつですか?
非消費型のアプリ内購入がある基本的なアプリの場合、SKPaymentQueue を使用するためのベスト プラクティスを見つけた人はいrestoreCompletedTransactions
ますか?
観察
アプリに戻る保留中のトランザクションを受け取るために、常にトランザクション オブザーバーを登録することをお勧めしますが、これは別の問題です。restoreCompletedTransactions
顧客がすでに行ったすべての購入をポーリングするために呼び出すタイミングを、アプリが積極的に決定する必要があるようです。
私が知る限り、このメソッドは失われた可能性のある購入を取得するように設計されています。たとえば、顧客がアプリを新しいデバイスにインストールまたは移動すると、以前の支払いに関するアプリのローカル レコードが失われたりリセットされたりする場合があります。
懸念
私には明確でないのは、この状態を信頼できる方法で自動的に検出する方法 (つまり、未購入の購入をいつポーリングするかを決定する方法) です。これを台無しにして、顧客が既に支払った機能へのアクセスを拒否するリスクを冒したくありません.
同時に、restoreCompletedTransactions
安全のためにアプリが起動するたびに電話をかけたくないし、基本的には99.9%の確率で既に知っているトランザクションを取り戻します. (アプリ内購入を除いて、私のアプリは実際にはネットワーク接続を必要としません。)
ノート
Apple のドキュメントでは、顧客が既に行った消耗品以外の購入について再度請求されることはないことを明確にしています。再購入しようとしても、支払いトランザクションは引き続きアプリに送信されると思われます。
最悪の場合、顧客はこの方法で購入を取り消すことができますが、それでも、既に支払ったものを再度購入するような道を歩むことは避けたいと思います.
iphone - iPhoneストアキット:キャンセルイベントをキャッチする方法
これが私の問題です:
アプリ内購入にstorekitを使用する場合、プロセスの進行中に数秒間待つようにユーザーに指示する「読み込み中」ビューを表示しています。しかし、この同じユーザーが、ストアキットが彼のitunesアカウントのパスワードを要求したときに、「キャンセル」ボタンを押したとしましょう...読み込みビューを非表示にするためにこのイベントを「キャッチ」するにはどうすればよいですか?
ユーザーのコミュニケーションは非常に重要なので、Appleの拒否の原因になる可能性があるのではないかと思います。
ヒントをありがとう!
編集:私はここで取引をしていません。私の最初のステップは、完了したトランザクションを復元して、パスワードプロンプトが次の方法でトリガーされるようにすることです。
iphone - StoreKitはすべての商品IDを返します
この質問は、私がここで見つけた他の質問とは少し異なります。In App StoreKitが機能しているので、ストア内の商品を正常に一覧表示できます。私はAppleのドキュメントを調べましたが、私の質問が取り上げられているのを見たことがありません(私はそれを見逃したかもしれません)。
私のクライアント(非営利団体)は、アプリを通じて寄付を受け付けたいと考えています。ユーザーがアプリを更新しなくても、その場で新しい寄付イベントを追加できるようにしたいと思います。私が言いたいのは、彼らは特別な「今度の植樹祭のイベントを後援するのを手伝ってください」を持っていて、その場合に特有の寄付を受け入れるかもしれないということです。
私は現在このような製品を読んでいます:
つまり、その植樹祭のイベントが発生した場合は、リクエストリストに@"arborSponsor"を含めるように更新を発行する必要があります。バンドル内のすべての製品をリクエストするにはどうすればよいですか?
@"com.thedomain。*"と他のいくつかの推測を運がなく使ってみました。リスト全体を返すことは可能ですか、私は非常に単純なものを見逃していますか?ありがとう!
iphone - iPhone アプリがライブかテストかをコードで検出する
アプリ コード内に、アプリが (iTunes ストアで) 本物かどうかをテストするかどうかを判断する方法があるかどうか疑問に思っていましたか? その理由は、アプリ内購入のすべての部分が解決されたためです。ただし、レシートを確認する場合は、ライブの場合はhttps://buy.itunes.apple.com/verifyReceiptに、テストのみの場合はhttps://sandbox.itunes.apple.com/verifyReceiptに送信する必要があります。
現在、送信前に設定を切り替えていますが、そのようなアプローチでは、サンドボックス バージョンが誤って送信されてしまい、簡単に失敗する可能性があることを知っています。使用する URL をコードで決定したいと考えています。
objective-c - アプリ内購入の「無効な製品 ID」エラー メッセージ
製品情報のリクエスト中に無効な識別子の問題が発生しました
私は次のことをしました:
アプリケーションを iTunes Connect に追加しましたが、バンドル ID がプログラム ポータルのものと一致します。
プログラム ポータルでアプリ ID のアプリ購入を有効にし、そのプロビジョニング プロファイルを作成してデバイスにインストールしました。
製品 ID と価格と名前でテスト アカウントを作成しました。
プロジェクトに以下のコードを含めました
/li>
しかし、productid が無効になっています。
どなたか心当たりのある方いましたら教えてください!