Продукты для покупок в приложении не найдены

Я создал приложение с идентификатором пакета

com.myapp

Теперь я добавил два элемента In App Purchase. Ниже приведены идентификаторы продуктов.

com.myapp.product1

com.myapp.product2

Теперь, когда я получаю список продуктов, он не показывает никаких продуктов.

Я использую следующий код для загрузки списка продуктов

  let request = SKProductsRequest(productIdentifiers: Set(remainingIds))
        request.delegate = self
        loadProductsRequests.append(LoadProductsRequestInfo(request: request, completion: completion))
        request.start()

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

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


person HarshIT    schedule 23.03.2017    source источник
comment
Каков статус идентификаторов ваших продуктов? они «готовы к отправке»? или "Ожидание загрузки"?   -  person Sivajee Battina    schedule 10.04.2017


Ответы (3)


Ваш код кажется подходящим для запроса продуктов.

Убедитесь, что вы добавили свои продукты с идентификаторами пакетов и другой необходимой информацией в приложение iTunes Connect в категории покупок из приложения. .

Еще одна вещь - Apple не позволит получать список продуктов из приложения, пока вы не заполните формы в разделе «Налоги по соглашению и банковские услуги» в iTunes Connect.

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

func productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse) {

        let count : Int = response.products.count
        if (count>0) {
            var validProducts = response.products
            var validProduct: SKProduct = response.products[0] as SKProduct

            if (validProduct.productIdentifier == self.product_id) {
                print(validProduct.localizedTitle)
                print(validProduct.localizedDescription)
                print(validProduct.price)
                buyProduct(product: validProduct);

            } else {
                print(validProduct.productIdentifier)
            }
        } else {
            print("nothing")
        }
    }

Здесь product_id = "com.myapp.product1" или "com.myapp.product2".

Также включите покупку в приложении в разделе Возможности:

Покупка в приложении

person Akash Thakkar    schedule 11.04.2017

В случае покупки в приложении вам необходимо сделать следующее:

Войдите в iTunes Connect

•   click “Users and Roles”  and add “sandbox tester” Details to test the app with dummy payment
•   Click on “Agreement tax and  Banking” Check For contract Type ,add needed account info,Bank info and Tax info.
•   On the iTunes Connect homepage, click the “Manage Your Applications” link
•   In the top-right corner, click “Create New Application”
•   Fill out all the requested information for your app. When asked for your application binary, check the box indicating you will upload it later.

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

person Rekha.t    schedule 23.03.2017
comment
Я уже прошел эту процедуру. Проблема не в этом. - person HarshIT; 23.03.2017
comment
Проблема в том, что в моем приложении не отображается список продуктов. - person HarshIT; 23.03.2017
comment
У меня была именно эта проблема, и это было из-за проблемы, описанной в этом ответе (или небольшого изменения). Я думаю, что API покупок в приложении намеренно тупой, поэтому им нельзя манипулировать. Хотя это кажется странным с точки зрения разработчика, отсутствие правильных документов для вашей учетной записи действительно вызывает проблему, которую вы видите. Я знаю, что это расстраивает, но попробуйте пройти все в своей учетной записи, настройках приложения, правах и т. Д. И посмотрите, есть ли поле, которое вы забыли проверить, или соглашение, которое вы не подписывали. Загадочные пути Apple ... ???? - person Anna Dickinson; 08.04.2017

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

Поэтому убедитесь, что ваш идентификатор пакета совпадает между подключением App Store и вашим приложением.

person Ali    schedule 23.09.2018