pkstudio: блин, я невнимательно читал и перпутал, думал вы пытаетесь перенести своё приложение к кому-то. Ну, тогда всё с точностью до наоборот. Вам нужно сообщить, как вы сами написали выше, человеку ваши APPLE ID & APPLE TEAM ID
Apple ID всегда совпадает с email'ом, на который вы регистрировались у Apple. Им же вы пользуетесь для того, чтобы войти в iTunes Connect.
Насчёт Team ID: Recipients can find their Team ID in Member Center.
Переходите в Member Center, жмёте Your Account наверху, и во вкладке "Account Summary" есть пункт Team ID.
Если ещё спросят Team Agent Apple ID (ваш) - то в iTunes Connect идёте в раздел Users and Roles и смотрите - напротив кого стоит слово "Legal". Скорее всего это ваш же Apple ID, если вы единственный пользователь.
@SegaZero тогда делайте с расчётом, что на каждого уникального пользователя 1 девайс. Залогинился - проверка через сервер, что у него открыто. Разлогинился - в приложении всё обнуляется. И всё.
@SegaZero так именно поэтому вы и валидируете всё на свёом сервере, имея уникальный идентификатор пользователя. подумайте о том, как живут free-to-play игры, зарабатывающее на многократоной продаже одних и тех же in-app-покупок для покупки какой-то внутриигровой валюты, например.
@SegaZero а с чего вы взяли, что не дадут? Даже если покупка одноразовая - скажут, что уже покупали и спросят - хотите ли купить снова. А уже если она многоразовая, то с какой стати вам не дадут?
Насчёт валидировать - просто начните писать код и поймёте, на каком этапе помимо ответа из App Store вам стоит ещё и проверить данные на своём сервере.
@SegaZero всё верно, non-consumable одноразовая. @SegaZero пока писал, игрался в песочнице со внутренними покупками. Если покупка уже была сделана, а приложение об этом не знает (купил новый девайс или просто сбросил настройки девайса на заводские), то iOS просто пишет тебе - Ты уже это покупал. Ну, или вроде того. Собственно поэтому они и требуют кнопку "восстановления покупки", иначе в аппстор без неё не пустят. Это всё через эпловские механизмы работает. Но что вам мешает добавить к этому свой сервер? Об этом даже в документации, вроде, написано - что можно кроме App Store валидировать и через свой сервер.
@SegaZero разница в моём и вашем случаях, что я всю валидацию делаю через Apple, а вам помимо ответа от Apple ещё нужно проверить через свой сервер - была ли покупка ранее.
@SegaZero конечно даёт. А как, вы думаете, зарабатываю все фермообразные игры со внутренними покупками? Строишь дом. Не хочешь ждать сутки - заплати какими-нибудь алмазиками. Кончились алмазы - покупаешь через внутреннюю покупку. И покупать их можешь столько, на сколько денег хватит. Иначе бы эти игры не зарабатывали столько денег.
В целом - да, новому пользователю показывать всё как некупленное и сверяться со своим сервером, где записывается - какой пользователь что покупал или баланс, например.
Пользователь купил - помимо того, что в приложении что-нибудь разблокировалось/добавилось, шлём на свой сервер - пользователь с логином/id купил то-то. У каждой же встроенной покупки есть свой уникальный id.
Пользователь разлогинился, вошёл другой пользователь - считаем, что он новый, опрашиваем свой сервер - покупал ли этот пользователь что-то ранее. Если покупал - разблокируем/показываем ему то, что он покупал.
Вся логика на вас. От Apple вам лишь нужен их механизм покупки. Ну, и восстановления покупки на случай, если то, что пользователь покупает, должно быть куплено 1 раз. Например, я делал в своём приложении банальное отключение рекламы за 1$. Я реализовал покупку, которая является одноразовой. Затем реализовал кнопку "Восстановить покупку", чтобы человек, например, купив себе новый iPad и установив моё приложение, не покупал отключение рекламы снова. Он просто жмёт Восстановить, приложение шлёт запрос в Apple - покупал ли он уже такую покупку, получает ответ и если да - разблокирует.
Как раз таки смысл есть уйти с апача на nginx+php-fpm. Apache каждый раз создаёт копию себя, тупо ещё один процесс, чем жрёт память и работает медленнее, чем php-fpm. Другое дело - надо тестить, будет ли с этим работать ваш ISP
Тогда стоит глянуть в код сайта. Поставить замер времени выполнения скриптов. Посмотреть, не тянется ли что-то с извне, может данные какие-то через CURL грузятся.