Требуется вход в систему Введите пароль для.[Среда: Песочница] - PullRequest
0 голосов
/ 27 декабря 2018

Когда я запускаю приложение Unity для iOS, меня постоянно спрашивают:

Введите пароль для.[среда песочница]

Обратите внимание, что имя пользователя отсутствует, и я не могу указать имя пользователя.Поэтому я также не могу ввести пароль.

Я удалил все ссылки на IAP (каналы и папки покупок и отключил службу IAP), удалил папку сборки iOS и перестроил ее, затем скомпилировал.

Я вышел из iTunes на iPhone.

Я все еще подсказываю.Я приложил скриншот.

enter image description here

Ответы [ 3 ]

0 голосов
/ 17 января 2019

Я решил эту проблему, создав новое приложение и идентификатор приложения в App Connect Store.

0 голосов
/ 22 июля 2019

У меня была такая же проблема с реализацией IAP в приложении React Native с помощью RevenueCat (реагировать на собственные покупки).

Мое решение:

  1. Внутри AppDelegate.h, импортируйте StoreKitи добавьте SKPaymentTransactionObserver в интерфейс AppDelegate.
#import <React/RCTBridgeDelegate.h>
#import <UIKit/UIKit.h>
#import <StoreKit/StoreKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate, SKPaymentTransactionObserver>

@property (nonatomic, strong) UIWindow *window;

@end
Внутри AppDelegate.m, импортируйте StoreKit и в didFinishLaunchingWithOptions добавьте наблюдателя.
#import <StoreKit/StoreKit.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ 
  [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
...
}
Снова внутри AppDelegate.m добавьте требуемый метод updatedTransactions, чтобы соответствовать протоколу SKPaymentTransactionObserver.
(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
  for(SKPaymentTransaction *transaction in transactions){
    switch(transaction.transactionState){
      case SKPaymentTransactionStatePurchasing:
        [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
        NSLog(@"Transaction state -> Purchasing");
        break;
      case SKPaymentTransactionStatePurchased:
        [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
        NSLog(@"Transaction state -> Purchased");
        break;
      case SKPaymentTransactionStateRestored:
        NSLog(@"Transaction state -> Restored");
        [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
        break;
      case SKPaymentTransactionStateFailed:
        if(transaction.error.code == SKErrorPaymentCancelled){
          NSLog(@"Transaction state -> Cancelled");
        }
        [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
        break;
    }
  }

Запустите приложение на своем физическом устройстве, которое представляет проблему, когда появится сообщение, нажмите Отмена.

Проверьте в XCode, что FinishTransaction вызывался внутри любогокорпусов выключателей.К счастью, он будет вызываться столько раз, сколько было незаконченных транзакций.

После этого надоедливое сообщение больше не должно появляться.В моем случае было около 15 незавершенных транзакций, и именно поэтому сообщение появлялось каждые 5 минут ... ¬¬

Я прокомментировал приведенный выше код после того, как проблема исчезла, потому что, как я уже сказал, яиспользование платформы для управления IAP.

Это всего лишь обходной путь, но надеюсь, что он сработает для вас.

0 голосов
/ 16 января 2019

Недавно у меня была такая же проблема, когда меня постоянно спрашивали учетные данные для учетной записи песочницы "."- Это происходило всякий раз, когда я открывал нужное приложение или когда менялось сетевое подключение.Я понятия не имею, как он попал в это состояние, но я обнаружил, что у Милоса был ответ .

По сути, вам нужно настроить SKPaymentTransactionObserver, если у вас его еще нет (у тебя наверное есть).Затем внутри paymentQueue:updatedTransactions: ( документы ) выполните цикл по всем транзакциям в очереди, вызывая каждую транзакцию:

Swift:

SKPaymentQueue.default().finishTransaction(transaction)

Obj-C:

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

Мне пришлось удалить существующий код, который у меня был в цикле очереди транзакций, поскольку он, казалось, вызывал диалог учетных данных и означал, что другие транзакции не будут завершены.

Запуск приложения сэти временные изменения устранили проблему для меня, так что, похоже, очередь транзакций была просто заблокирована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...