2013-04-16 2 views
0

Я искал вокруг и не могу узнать, возможно ли это. Был сделан запрос на создание ПНД с «профилем подготовки к истечению срока действия, срок действия которого истекает через 30 дней». Это даже возможность?Самостоятельное приложение для предприятий для внутреннего распределения?

Когда я пытаюсь создать профиль подготовки в центре членов, он не дает мне возможность устанавливать, когда он истекает.

+0

Я не вижу каких-либо стандартных возможностей для этого в своей практике, но, возможно, поддержка Apple может помочь вам после специального запроса =) – Ossir

+0

Каковы цели этого? – Peres

+0

@JackyBoy Хотите распространять демоверсию и убедиться, что она не работает на устройствах пользователя через определенный период. – user573117

ответ

0

IPA с «просроченным профилем обеспечения, который истекает через 30 дней».

Очевидное решения для сохранения даты в первый раз, когда приложение запускается, проверьте, что каждый раз, когда запуски приложения (или выходит на первый план, и т.д.), и отказывается делать что-либо, если дата начала составляет более 30 дней до текущего времени.

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

Следующая проблема заключается в выборе способа идентификации устройства (или пользователя). UDID кажется очевидным выбором, но он устарел и может уйти в какой-то момент в будущем. Существует множество альтернатив UDID, но большинство из них по-прежнему нарушают дух запрета на использование UDID. Поскольку вам все равно нужно использовать сервер, вы можете подумать о том, чтобы пользователь создал учетную запись на сервере (через приложение, конечно), чтобы время начала было привязано к учетной записи пользователя, а не к устройству.

И, наконец, вы должны знать, что подобное препятствует утверждению вашего приложения в App Store. Приложения не должны прекращать работу после истечения срока действия демоверсии. Я знаю, что вы сказали, что это корпоративное приложение, но если это так, сложно понять, зачем вам такая функциональность в любом случае. Возможно, вам удастся обойти это, добавив, что функциональность зависит от учетной записи пользователя на сервере - в этом случае вы можете приостановить или закрыть учетную запись пользователя, чтобы отключить доступ, а не отказаться от работы приложения.

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

0

Если вы хотите, чтобы устройство перестанет работать после определенного количества времени:

#define BEGIN_DATE @"BEGIN_DATE" 

    if(![[NSUserDefaults standardUserDefaults] objectForKey:BEGIN_DATE]) 
    { 
     [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:BEGIN_DATE]; 
    }; 

    if ([[NSDate date] timeIntervalSinceDate:[[NSUserDefaults standardUserDefaults] objectForKey:BEGIN_DATE]] > 2592000) 
    { 
     *(long*)0 = 0xDEADBEEF; 
    } 

2592000 один месяц в секундах.

Смежные вопросы