StoreKit для возврата всех идентификаторов продуктов

Этот вопрос немного отличается от других, которые я нашел здесь. My In App StoreKit работает, я могу успешно перечислить продукты в моем магазине. Я просмотрел документацию Apple и никогда не рассматривал мой вопрос (возможно, я пропустил его).

Мой клиент (некоммерческий) хотел бы иметь возможность принимать пожертвования через свое приложение. Я бы хотел, чтобы они имели возможность добавлять новые пожертвования на лету без необходимости обновления своего приложения. Я имею в виду, что у них может быть специальная "Помогите нам спонсировать мероприятие в этот предстоящий День Арбора" и принять пожертвования, особенно в этом случае.

В настоящее время я читаю такие продукты:

SKProductsRequest *request= 
         [[SKProductsRequest alloc] initWithProductIdentifiers: 
          [NSSet setWithObjects: @"goldSponsor", @"silverSponsor"];

Это означает, что если произойдет событие Arbor Day, мне придется выпустить обновление, чтобы включить @ "arborSponsor" в мой список запросов. Как я могу запросить каждый продукт под моим пакетом?

Я пробовал использовать @ "com.thedomain. *" и некоторые другие догадки без везения. Можно ли вернуть весь список, я пропустил что-то очень простое? Спасибо!

Ответ 1

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

Один из способов справиться с этим - сохранить идентификатор продукта на удаленном сервере, а затем сделать запрос на сервер, чтобы выгрузить текущий набор идентификаторов при загрузке хранилища.

Это позволит вам добавлять или удалять продукты со стороны itunes и не отправлять какие-либо бинарные обновления в ваше приложение.

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

Это можно сделать, используя простой http API на стороне сервера или даже просто файл xml, который вы вытаскиваете.

В Руководстве по покупке приложений в приложении

Apple рекомендует вам получать продукт идентификаторы с вашего сервера, чем включать их в собственность список. Это дает вам гибкость добавлять новые продукты без обновления ваше приложение.

Ответ 2

У меня такая же проблема, но я думаю, что у меня есть способ ее решить, предварительно планируя идентификаторы продуктов. Вместо того, чтобы называть каждый идентификатор продукта чем-то особенным, например "goldSponsor", просто наберите их "1", "2", "3"... столько, сколько вы хотите добавить. Задайте имя "Золотой спонсор" и описание, которое вы хотите. Когда приложение начнет работать, запросите первые N последовательных идентификаторов продукта. Если все они будут возвращены как действительные, запросите еще один идентификатор продукта N, пока не получите недопустимые идентификаторы, после чего вы закончите.

Я планирую сделать это с размещенным в Apple контентом. Я также рассматриваю использование поля описания для продукта для кодирования подробной информации о загружаемых нами данных (в моем случае угловые координаты карты). Я все равно буду использовать полный "com.company.product.1" для каждого идентификатора и нумерацию их последовательно оттуда.