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, чтобы спросить моих бета-тестеров об их опыте использования приложения.
Это фактически делает приложение непригодным для использования, так как по истечении установленной вами даты оно перейдет к контроллеру представления, который нельзя оставить.
Примечание: вы можете сделать что-то подобное, программно изменив начальный контроллер представления, если выполнены те же условия сравнения дат.
Предоставление профилей и сертификатов не работает таким образом... если вам нужно ограничить доступ к вашему приложению, вы должны сделать это с помощью кода.
Имейте в виду, что взломанные устройства могут обойти ваши проверки. Кроме того, если вы используете дату устройства для ограничения доступа, пользователь, который изменил часы и дату устройства, сможет получить доступ.
Компилятор не "знает" о профиле обеспечения, используемом для создания и подписи двоичного файла. Это слишком далеко в процессе сборки.
Лучшее, что вы можете сделать, это отозвать специальный сертификат распространения (не профиль).