Вы можете сохранить уникальный идентификатор пользователя в базе данных вашего сервера вместе с отметкой времени первого запуска приложения. Затем, когда пользователь откроет приложение после первого раза, проверьте на сервере, чтобы убедиться, что его неделя не истекла.
Чтобы получить уникальный идентификатор устройства, вы можете использовать [[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 по созданию приложения, которое является «пробным» и истекает через определенный промежуток времени.