IPA с «просроченным профилем обеспечения, который истекает через 30 дней».
Очевидное решения для сохранения даты в первый раз, когда приложение запускается, проверьте, что каждый раз, когда запуски приложения (или выходит на первый план, и т.д.), и отказывается делать что-либо, если дата начала составляет более 30 дней до текущего времени.
Проблема с этим подходом заключается в том, что пользователь всегда может удалить и переустановить приложение, тем самым сбросив часы. Чтобы обойти это, вам нужно сохранить первую дату запуска для этого устройства где-нибудь, где он не будет удален, когда пользователь удалит приложение. Вероятно, это означает отправку первой даты запуска и некоторого идентификатора устройства на ваш сервер. Это не пуленепробиваемый - пользователь всегда может отключить доступ к сети, чтобы вы не могли зарегистрироваться на своем сервере, но это, вероятно, достаточно.
Следующая проблема заключается в выборе способа идентификации устройства (или пользователя). UDID кажется очевидным выбором, но он устарел и может уйти в какой-то момент в будущем. Существует множество альтернатив UDID, но большинство из них по-прежнему нарушают дух запрета на использование UDID. Поскольку вам все равно нужно использовать сервер, вы можете подумать о том, чтобы пользователь создал учетную запись на сервере (через приложение, конечно), чтобы время начала было привязано к учетной записи пользователя, а не к устройству.
И, наконец, вы должны знать, что подобное препятствует утверждению вашего приложения в App Store. Приложения не должны прекращать работу после истечения срока действия демоверсии. Я знаю, что вы сказали, что это корпоративное приложение, но если это так, сложно понять, зачем вам такая функциональность в любом случае. Возможно, вам удастся обойти это, добавив, что функциональность зависит от учетной записи пользователя на сервере - в этом случае вы можете приостановить или закрыть учетную запись пользователя, чтобы отключить доступ, а не отказаться от работы приложения.
Если вы хотите, чтобы приложение истекало после некоторого периода, начиная с момента создания приложения, это гораздо более простая проблема. Просто сохраните дату сборки (или дату истечения срока действия) в каком-то ресурсе, который является частью приложения, и периодически проверяйте текущую дату.
Я не вижу каких-либо стандартных возможностей для этого в своей практике, но, возможно, поддержка Apple может помочь вам после специального запроса =) – Ossir
Каковы цели этого? – Peres
@JackyBoy Хотите распространять демоверсию и убедиться, что она не работает на устройствах пользователя через определенный период. – user573117