問題タブ [iap-hosted-content]
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.
ios - iOS: Apple Hosted コンテンツを itunesconnect のアプリ内購入にアップロードする方法
Non-Consumable Purchase があり、Apple でホストしたいと考えています。
画像から入ってJSONで管理する本のようなものです。どうすればアップロードできますか?
ios - iOS iAP でホストされているコンテンツのダウンロードが機能しない
アプリ用に非消費型の iAP がいくつかあります。アプリの最初のバージョンには適切なコンテンツがアプリ バンドル内に含まれていたため、iAP はコンテンツにアクセスできる領域のロックを解除するだけでした。私はアプリの 2 番目のバージョンに取り組んでおり、今回はユーザーが購入したときにコンテンツがダウンロードされます。iAP の新しいバージョンを作成しました (重要: 同じ iAP の新しいバージョンですが、今回は「ホストされたコンテンツ」を追加します。それらはまったく新しい iAP ではありません)、ホストされたコンテンツは正常にアップロードされ、iAP のステータスは「送信準備完了」です。 "。すべてが機能しており、コンテンツがデバイスにダウンロードされていましたが、1 週間前に何らかの理由でテストしたところ、購入は成功しましたが、コンテンツがダウンロードされていませんでした。作成時にブレークポイントを使用するSKPayment
オブジェクト、ダウンロード可能なコンテンツがあることがわかります:
バージョンも iTunes Connect と同じです。
しかし、 内でトランザクションを処理する場合、オブジェクト-paymentQueue:updatedTransactions:
はありません。SKDownload
TestFlight Sandbox ユーザーを使用していますが、購入時に [Environment: Sandbox] と表示されるので、本番環境ではないことがわかります。
何が起こっている?なぜ突然機能しなくなったのですか?Apple は最近何かを変更しましたか? これは私を夢中にさせています。ありがとう、助けていただければ幸いです。
swift - InAppPurchase: AppDelegate からホストされたコンテンツをダウンロードする
Apple のサーバーでホストされているコンテンツを使用してアプリ内購入を実装しようとしています。SwiftyStoreKit フレームワークを使用しています。
通常、他のチュートリアルに従って、ダウンロード呼び出しを実装する必要があります。
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
だから私はこのfuncで次のコードを実装しました:
それは機能しており、AppDelegate で前のトランザクションのステータスが「購入済み」であるが「終了」していないかどうかを確認しようとしています。これは、ユーザーが製品を購入したことを意味しますが、ダウンロードに問題がありました。
これが私のコードです。
チェックは機能していますが、ダウンロードに問題があります:
タイプ PaymentTransaction の値には、メンバーのダウンロードがありません。
問題は、どうすればコンテンツのダウンロードを適切に開始できるかということです。paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
どんな助けでも大歓迎です。
xcode - アプリ内購入用のホストされたコンテンツを iTunesConnect にアップロードできない
アプリ内購入のためにホストされたコンテンツをアップロードしようとしていますが、今のところ成功していません。
Application Loader を使用して、アプリのアプリ内購入パッケージを約 100 個アップロードしました。以前はこれらのパッケージを問題なくアップロードできました。Application Loader の最新バージョン (バージョン 3.0) では、ホストされているコンテンツをアップロードするオプションさえないことに気付きました (添付を参照)。
そのため、時間をかけて iTMSTransporter bash スクリプトを代わりに使用しました。ただし、次を使用してコンテンツパックをアップロードしようとすると:
iTMSTransporter -m アップロード
次のエラーが表示されます。
パッケージの概要:
1 個のパッケージは、問題があったため検証されませんでした: /Users/Cortana/Documents/iOS/Clients/AccentKit/InAppContent/854413379.itmsp - エラー メッセージ: ERROR ITMS-90320: "アプリ内購入のアーカイブ 'com .accentkit.AustraliaFemale1' は無効です。ContentInfo.plist の 'IAPProductIdentifier' は、アプリ内購入の製品 ID と一致する必要があります。[2018-04-14 07:12:45 MYT] DBG-X: 1 を返す
再確認したところ、ContentInfo.plist の IAPProductIdentifier の値は、iTunesConnect のアプリ内購入製品 ID の設定と正確に一致しています。(添付のスクリーンショットを参照) このエラーは私には意味がありません。
何か案は?
ios - アプリがバックグラウンドになった後の SKDownload の問題
私のアプリでは、アプリがアクティブな場合、Apple でホストされているコンテンツのダウンロードはうまくいきます。ただし、バックグラウンドに移行して十分な時間が経過すると、再びアクティブになったときにSKDownload
まだactive
状態がありますが、進行状況は報告されていません。取引がまだ完了していないことを確認しました。
なぜこれが起こるのか誰にも分かりますか?私のデバイスは Wi-Fi に接続されSKDownload
ており、インスタンス変数に保存したため、ダウンロードの状態を確認できました。したがって、バックグラウンドでダウンロードの進行状況を受信できないという問題だけであれば、現在の値を から読み取ることができますmyDownload.progress
。ただし、進行状況はまったく同じであり、更新されていません。
上記のようにSKDownload
変数に保存するので、これは私にとって大きな問題です。重複したダウンロードが開始されるのを防ぐためにそうしています。私のアセットは 150MB を超えているため、ユーザーはアセットのダウンロードにかかる時間を認識せず、アイテムを再度復元/「購入」して 2 回目のダウンロードを開始しようとする可能性があります。そのため、実行中のダウンロードを変数に保存し、新しいトランザクションが完了すると、ダウンロードが既に実行されているかどうかを確認します。ダウンロードが最短時間で完了することを保証する優れた設計です。唯一の問題は、アプリが長時間バックグラウンドにあり、次の状態になった場合に発生します。
- アクティブなレポートをダウンロード
- 対応するトランザクションはまだ終了していません
- なぜかダウンロードが進まない
上記のセーフガードを考えると、ダウンロードが実行されておらず、アプリが重複したアクティブなダウンロードを認識しているため、新しいダウンロードが開始されないため、問題は明らかです。
ダウンロードを再開しようとしましたが、何もしません (状態が一時停止されていないためだと思います)。
更新 1
この問題を解決する方法を見つけましたが、私にはハックのように見えます:
- アプリがバックグラウンドになったらダウンロードを一時停止する
- ストア トランザクション オブザーバーを再度 (!!!) に追加し
applicationWillEnterForeground
ます。 - 一時停止したダウンロードを再開する
2が一番面白い。すべてのストア関連の通知を処理するシングルトンがあります。でトランザクション オブザーバーとして追加し、didFinishLaunchingWithOptions
でのみ削除しwillTerminate
ます。アプリがフォアグラウンド状態になった後、シングルトンが同じであることを確認しました。それでも、ストア オブザーバーとして再度追加しない限り、ダウンロードの再開は見られません。超面白い。