同様の問題を経験して解決しました。CurrentAppSimulatorの使用は正常に機能しましたが、 CurrentAppで実際の購入UIを表示することはできませんでした。
本番環境の設定では、CurrentApp.RequestProductPurchaseAsync(string、bool)が戻らないように見えました(より具体的には、ユーザーがログインした後に1回だけ返されます-後続の呼び出しは返されませんでした)。
さらに、アプリで購入UIを表示しようとした後、購入UIを使用する他のアプリケーションでも同じ問題が発生しました。UIが表示されません。
問題のコードは次のとおりです。
private async void CommandInvokedHandler(IUICommand command)
{
switch (command.Label)
{
case "Continue":
licenseInformation = CurrentApp.LicenseInformation;
if (!licenseInformation.ProductLicenses[Notes.ProductName].IsActive)
{
try
{
await CurrentApp.RequestProductPurchaseAsync(Notes.ProductName, false);
// The code never steps over
}
上記のコードのやや明らかな問題は、アプリ内購入UIを表示するリクエストが、モーダルダイアログボックスのコマンドハンドラー内から行われることです。リクエストがハングします-返されません。それほど明白ではない部分は、アプリケーションおよび他のすべてのアプリケーションからの後続のすべての要求もブロックすることです(ユーザーのセッションが再開されるまで)。
「try」ブロックをコマンドハンドラーから移動し、購入要求に異議を唱えるモーダルUI呼び出しがないことを確認すると、購入は問題なく機能しました。
編集:これをテストするには、再起動(または再ログイン)する必要があります。購入UIが壊れると、再起動するか再ログインするまで表示されません。