iOS: период действия Ad Hoc Distribution

Есть ли какой-либо способ установить конкретную дату во время компиляции, когда срок действия приложения, соответствующего специальному распределению, истечет, и его нельзя будет запустить через некоторое время?

4 ответа

Просто НЕТ, вы ничего не можете сделать с профилями обеспечения с компиляцией или во время выполнения. это просто ручная штука для iOS-приложения. Вы должны организовать в соответствии с вашими требованиями, например, когда использовать разработку, а когда для ad-hoc или распространения. Компилятор не содержит никаких сведений о профилях обеспечения.

Легкий обходной путь для этого, который я нашел полезным. Устанавливайте дату окончания срока действия и сравнивайте ее с текущей датой при каждой загрузке приложения:

NSDate* todaysDate = [NSDate Date];
NSDate* expirationDate = [NSDate dateFromString: expirationStr];

if([todaysDate laterDate:expirationDate] == todaysDate){
    [self performSegueWithIdentifier:@"segueToExpirationVC" sender:self];
}

В viewDidLoad моего initialViewController я проверяю, истекла ли текущая дата "даты истечения", которую я установил для приложения. Если это так, то я выполняю переход к контроллеру представления без кнопок для выхода из ВК. На этом ViewController вы можете отобразить сообщение в виде строки "Срок действия бета-версии этого приложения истек". Я также часто включаю опрос об этом ViewController, чтобы спросить моих бета-тестеров об их опыте использования приложения.

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

Примечание: вы можете сделать что-то подобное, программно изменив начальный контроллер представления, если выполнены те же условия сравнения дат.

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

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

Компилятор не "знает" о профиле обеспечения, используемом для создания и подписи двоичного файла. Это слишком далеко в процессе сборки.

Лучшее, что вы можете сделать, это отозвать специальный сертификат распространения (не профиль).

Другие вопросы по тегам