Подтвердить что ты не робот

Причины для SKProductsRequest возвращают 0 продуктов?

Я пытаюсь настроить IAP, но после обращения к продуктам, использующим SKProductsRequest, массив SKProductsResponse у моего делегата имеет счет 0. Здесь мой контрольный список:

  • Тестовый продукт был добавлен в iTunes connect
  • Идентификатор продукта совпадает с идентификатором пакета приложения (и его не использует подстановочный знак)
  • Идентификатор продукта, установленный в SKProductRequest, соответствует продукту, созданному на iTunes connect
  • Я ждал несколько часов с момента создания продукта в iTunes connect
  • Профили обеспечения позволяют IAP
  • Следуйте всем шагам в различных учебниках, таких как http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/ и т.д.
  • Удалили приложение с устройства, перезапустили Xcode, перестроили и т.д. и т.д.

Любые другие предложения относительно того, почему количество загруженных продуктов равно нулю?

Я не считаю, что это будет проблема с кодировкой, но здесь все равно:

…

        NSSet *productIdentifiers = [NSSet setWithObjects:@"redacted", nil];
        self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
        self.productsRequest.delegate = self;
        [self.productsRequest start];

…
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *products = response.products;
    NSLog(@"Product count: %d", [products count]);
    for (SKProduct *product in products)
    {
        NSLog(@"Product: %@ %@ %f", product.productIdentifier, product.localizedTitle, product.price.floatValue);
    }
}
4b9b3361

Ответ 1

Проверьте все 3 вещи в списке ниже
1) проверьте идентификаторы вашего продукта - они должны быть точно такими же, как у вас в коде и в iTunes Connect → Мои приложения → YourAppName → Функции → Покупки из приложения enter image description here 2) iTunes Connect → Соглашения, налоги и банковское дело → Генеральные соглашения → Платные Applications-> Контактная информация/Информация о банке/Налоговая информация (заполняется)enter image description here 3) код для проверки

class ViewController: UIViewController {

    var requestProd = SKProductsRequest()
    var products = [SKProduct]()

    override func viewDidLoad() {
        super.viewDidLoad()

        validateProductIdentifiers()
    }
}

extension ViewController: SKProductsRequestDelegate {

    func validateProductIdentifiers() {
        let productsRequest = SKProductsRequest(productIdentifiers: Set(["candy100", "someOtherProductId"]))

        // Keep a strong reference to the request.
        self.requestProd = productsRequest;
        productsRequest.delegate = self
        productsRequest.start()
    }

    // SKProductsRequestDelegate protocol method
    public func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {

        self.products = response.products

        for invalidIdentifier in response.invalidProductIdentifiers {
            print(invalidIdentifier)
        }

    }
}

Ответ 2

Я столкнулся с одной и той же проблемой. Решил ее, отправив только имя продукта IAP, а не мой идентификатор пакета до имени продукта. Вот пример:

работает SKProductsRequest *productRequest = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObject:@"my_product"]];

а не

не работает SKProductsRequest *productRequest = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObject:@"com.my_site.my_app.my_product"]];

Ответ 3

Убедитесь, что включено приложение In-App Purchase в разделе "Возможности". Если вы этого не сделаете, SKProductsRequest вернет 0 продуктов.

Ответ 4

У меня была такая же проблема...

Я просто изменяю свой идентификатор Bundle, который не соответствует идентификатору пакета iTunes.

И мое приложение работает хорошо:)

Ответ 5

В том случае, если вы не заметили этого, совпадение идентификатора продукта зависит от регистра.

Итак, если вы создали продукт на Apple с идентификатором say

com.yourcompany.product1

и вы вызываете запрос продукта с идентификатором продукта

com.yourcompany.Product1

Ваш список будет возвращен нулевыми продуктами.

Это помогло мне заняться какое-то время: -)

ps: В отдельном проекте я обнаружил, что SKProductsRequest только начал возвращать продукты после перезагрузки. Итак, если все остальное не удается, попробуйте перезагрузить свой Mac.

Ответ 6

Перейдите в iOS Настройки> iTunes & Магазины приложений и Выйти

Надеюсь, это поможет вам, я не знаю, почему: D

Ответ 7

В некоторых случаях очень много решений для этих проблем. После некоторых исследований я обнаружил, что иногда помогает удалить приложение, а затем снова установить его (In-App Purchase, SKProductsRequest возвращает 0 - Продукты, все еще находящиеся в обзоре) Также какую версию iOS вы используете?

Ответ 9

Пожалуйста, также укажите, была ли вы установлена ​​цена продукта в iTunesConnect или нет. Я пропустил это, и продукты были равны нулю. Весь мой день потратил на это.

Ответ 10

Кроме того, имейте в виду, что согласия на оплату приложений cotract недостаточно. Вы также должны заполнить контактную, банковскую и налоговую информацию для этого агрессора специально, чтобы это считалось выполненным.

Ответ 11

После долгих раскопок следующие шаги решили мою проблему с получением 0 продуктов для SKProductsRequest.

Перейдите в Настройки> Войдите в свой iPhone на устройстве iOS. Если вы уже вошли в систему со своим оригинальным Apple ID, нажмите на него и выберите Выйти. Затем просто войдите в систему, используя учетные данные тестера песочницы, который вы создали в iTunes Connect.

Ответ 12

В некоторых системах MacOS 10.14 я получаю пустой массив SKProductsResponse.products, в то время как другие работают нормально и возвращают действительный список текущих IAP для моего приложения.

То же самое приложение, идентичный код.
Пользователь вошел в одну и ту же учетную запись App Store на обеих машинах.

Это просто странно.

Ответ 13

В моем случае это была ошибка. В симуляторе все идентификаторы товара не сработали и были помечены как недействительные. В реальном устройстве все запросы продукта успешно получены продукт.

Твос 4К