Переустановите приложение для покупки в приложении Itunes - PullRequest
0 голосов
/ 28 января 2012

Я новичок в разработке приложений для iPhone, сейчас я разрабатываю приложение для покупки в приложении.

Разработка приложения, которое реализует покупки в приложении с пробным периодом до одной недели. Пользователь устанавливает приложение и использует его до испытательного периода, а затем переустанавливает из itunes и использует еще один пробный период.В чем мой вопрос, если он не купил приложение, то не смог переустановить его снова.Как я могу контролировать пользователя, удаляющего и переустанавливающего не покупающее приложение у itunes.

Ответы [ 2 ]

1 голос
/ 28 января 2012

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

Чтобы получить уникальный идентификатор устройства, вы можете использовать [[UIDevice sharedDevice] uniqueIdentifier], который возвращает строку. Однако этот метод устарел, поэтому вам следует изучить альтернативные методы уникальной идентификации устройства (например, путем хеширования адреса Wi-Fi Mac).

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

Пример кода сервера:

URL: http://example.com/checkValid.php?udid=A1B2C3D4E5F6

$udid = mysql_real_escape_string($_GET['udid']);
$q = mysql_query("SELECT * FROM devices WHERE udid = `$udid`;");
if($r = mysql_fetch_assoc($q)){
   $timeElapsed = time() - $r['firstLaunch'];
   if($timeElapsed > 7*24*60*60){  // one week
       echo "expired";
       die();
   }
}else{
   $q = mysql_query("INSERT INTO devices (`udid`,`firstLaunch`) VALUES ('$udid','".time()."')");
}
echo "success";

Затем в своем приложении проверьте, является ли ответ expired; если это так, сообщите пользователю, что его пробная версия истекла.

Небольшое примечание о политиках App Store Это на самом деле против рекомендаций Apple App Store по созданию приложения, которое является «пробным» и истекает через определенный промежуток времени.

0 голосов
/ 28 января 2012

Очевидно, что Apple начала отклонять приложения, использующие [[UIDevice sharedDevice] uniqueIdentifier]; см. тему, начатую Карлом, в блоге MKStoreKit .

Здесь есть код для получения mac-адреса здесь . Вы можете использовать его для создания UDID. Я читал, что Apple также отклонит приложение, если оно также передает фактический mac-адрес устройства, поэтому вам придется преобразовать его в UDID. В этом посте предлагается использовать спецификацию rfc4122.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...