Я обновляю свое приложение iOS с помощью предложенного Apple кода VerificationController транзакции для проверки в -покупках приложений из-за недавнего опубликованного «взлома», который позволял людям совершать покупки в -покупках приложений без оплаты из-за поддельных квитанций с поддельных серверов Apple..
У меня все интегрировано, сейчас тестирую. Я запускал приложение несколько раз, и несколько раз выполнялась проверка.
Я хочу протестировать все, что касается покупки, в том числе начать со свежего нового приложения и AppleID. Поэтому я полностью удалил приложение со своего тестового устройства. Я создал новый AppleID «тестового пользователя» в iTunes Connect. Я зашел в приложение «Настройки» на своем тестовом устройстве, перешел в «Магазин» и изменил AppleID по умолчанию для устройства на этот только что созданный AppleID.
Я повторно -запускаю приложение из Xcode с помощью отладчика, который повторно -устанавливает приложение на тестовое устройство и запускает его заново.
Проблема в том, что почти сразу после запуска тестовое устройство выводит представление типа «Оповещение о пароле AppleID» -и запрашивает пароль для старого AppleID, который я изначально использовал для тестирования всего, включая оригинал в -покупке приложения и проверка для него. Он не запрашивает пароль для нового AppleID устройства, установленный в приложении «Настройки» в магазине.
Когда я запускаю его как новое приложение,код проверки не запускается, и ни один из моих подпрограмм, которые что-либо делают с материалом Apple StoreKit, не запускается, за исключением одиночного
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
(наблюдатель — это мой объект делегата для материалов StoreKit, и он создается, но в нем не выполняются никакие подпрограммы, кроме init, и init ничего не делает, кроме как устанавливает статическую переменную для себя, чтобы создать класс одноэлементного типа)
Для проверки я также добавил в
NSLog(@"in App Delegate, payment queue transactions are %@", [[SKPaymentQueue defaultQueue] transactions]);
который показывает отсутствие старых транзакций.
Я понятия не имею, почему он начал запрашивать мой AppleID исходного тестового пользователя, когда приложение только что установлено, AppleID для магазина для устройства отличается, и я не могу определить, не выполняется ли код, который обращается к StoreKit (, за исключением упомянутого выше ).
Любое понимание этого будет оценено.
ETA :Прикосновение к ОТМЕНЕ в диалоговом окне ввода пароля не приводит к запуску дополнительного кода в приложении и не препятствует запуску приложения.
Если я затем перейду на экран покупки приложения -(, где приложение запрашивает магазин о доступных покупках -приложения ), оно снова запрашивает пароль таким же образом, на СТАРОМ AppleID. Я могу отменить и ничего не происходит. Если я на самом деле нажимаю кнопку «восстановить покупки» в своем приложении, оно запрашивает пароль для нового AppleID, установленного в настройках магазина. Я не прошел мимо этого пункта, так как хочу понять, что происходит, и не хочу все испортить, выполнив / попытавшись восстановить или купить под новым AppleID.
Спасибо