Ответ 1
То, что вы хотите достичь, совершенно выполнимо, единственное, что ваш приобретаемый контент должен быть динамичным. Вам придется загружать идентификаторы продуктов с сервера, вместо того, чтобы их жестко закодировать в вашем приложении.
Чтобы обратиться к вашему примеру, я могу представить, что представление таблицы снабжается списком объектов, на котором будет храниться идентификатор SKProduct. Вам нужно будет это сделать, потому что на момент написания статьи вы не сможете получить все доступные идентификаторы продуктов для своего приложения с серверов Apple. Я знаю, что это боль в заднице, они не реализовали эту функцию, но, если честно, если они еще не думают, что они когда-либо будут.
Это метод, который я имею в виду: initWithProductIdentifiers
Вы предоставляете ему NSSet со всеми идентификаторами, которые хотите получить, но если вы предоставляете пустой набор или нуль, он не отвечает со всем существующим. Вы можете подать сообщение об ошибке с Apple, если считаете, что это не работает должным образом. Пожалуйста, проверьте этот ответ, если у вас все еще есть сомнения: ссылка
Еще одна важная вещь, которую нужно отметить: вам придется загружать свои продукты вручную. Apple не предоставляет какой-либо API, чтобы автоматизировать процесс. Это означает, что каждый раз, когда автор загружает что-то на ваш сервер, вам нужно будет войти в iTunes и создать продукт. Кроме того, вы будете ограничены 10 000 продуктами, потому что это максимальное количество различных продуктов, которые вы можете зарегистрировать в Apple. Я также рекомендую вам быстро прочитать руководство iTunes Connect, в котором есть важная информация, подобная той, которую я только что упомянул: iTunes Connect
Что касается сторонних инфраструктур, таких как вышеупомянутый UrbanAirship, они просто избавят вас от необходимости выполнять проверку чеков на ваших серверах. Кроме того, я не вижу больших преимуществ.
Сказав это, я бы рекомендовал вам пересмотреть свою бизнес-модель. Действительно ли это стоит всех проблем с загрузкой продуктов по одному на один? Или лучше пойти по подписке, в которой ваши пользователи платят фиксированную сумму денег за загрузку нескольких статей в месяц. У вас могут быть разные уровни, например, базовые, премиальные (неограниченные загрузки) и т.д. И контроль доставки статей с ваших серверов. Это вам, но для меня ответ довольно ясен.