Покупка в приложении / ресурсы по запросу

Использование ресурсов по запросу в сочетании с покупками в приложении для iOS понятно, если ресурсы включены в приложение. Но как мне добавить дополнительные покупки в приложении после того, как приложение появится в магазине? Я не имею в виду процесс создания новой покупки в приложении в iTunesConnect.

Я пытаюсь понять, создам ли я цель для новой покупки в приложении в исходном приложении и загружу ли цель в магазин приложений, если эти данные будут доступны для использования в качестве покупки в приложении. Видео WWDC указывает на два способа размещения покупок в приложении: ресурсы по запросу и размещенный контент. Является ли процесс загрузки одинаковым для обоих?


person C. Outwin    schedule 29.05.2018    source источник


Ответы (1)


Есть несколько способов сделать это.

1) Вы можете использовать SKProductRequest для проверки некоторых программно сгенерированных идентификаторов продукта (например: com.company.app.inappItem1, ''2, ''3). Ответ будет включать в себя продукты, которые вы фактически определили в itunes connect. Обычно ваше приложение должно что-то делать с этими покупками, поэтому вам в любом случае нужно заранее знать обо всех доступных продуктах. Я думаю, вам не обязательно сразу раскрывать их все.

2) Где-то вы предоставляете веб-службу (это может быть просто веб-сайт, на котором перечислены идентификаторы продуктов), который может сообщить вашему приложению, какие в настоящее время доступны идентификаторы продуктов. Затем ваше приложение может проверить с помощью вашего бэкенда список идентификаторов продуктов для использования в файле SKProductRequest.

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

Вам нужно будет повторно отправить свое приложение в магазин, если для вашей покупки в приложении требуется новый код. Однако, если они покупают только актив данных (не исполняемый код), покупка в приложении может инициировать загрузку для получения этих данных.

person Ron    schedule 29.05.2018
comment
Извините, я пропустил часть о «новой цели». Нет, это не сработает. Вам нужно будет повторно отправить приложение в магазин приложений. - person Ron; 29.05.2018
comment
Извините, время истекло. Нужно ли отправлять новую версию приложения при каждой новой покупке в приложении? - person C. Outwin; 29.05.2018
comment
Это зависит от типа покупки. Если его новая функциональность требует нового исполняемого кода, то да. Если это неисполняемые данные (возможно, изображение, таблица БД или что-то еще), то нет. - person Ron; 29.05.2018
comment
Таким образом, процесс представляет собой отправку исходного двоичного файла с исходным IAP и для каждого нового IAP создание цели, ее загрузка и отправка новой версии приложения? - person C. Outwin; 29.05.2018
comment
IAP не является расходным материалом. Цель содержит файл json, файл .sks (SpriteKit) и файл .xcassets. Исполнитель не меняется. - person C. Outwin; 29.05.2018
comment
В вашем приложении может быть много покупок в приложении. Их можно использовать для разблокировки функций или добавления новых данных. Если вам нужно расширить свое приложение новыми IAP, для работы которых требуется новый исполняемый код, вам потребуется повторно отправить обновленную версию вашего приложения. - person Ron; 29.05.2018
comment
Спасибо за вашу помощь. Я ценю ваше время. - person C. Outwin; 29.05.2018
comment
Похоже, что в вашем случае IAP могут просто вызвать загрузку с icloud или вашего собственного внутреннего сервера. Я обновил свой ответ выше. - person Ron; 29.05.2018