OpenUrl и itms-сервисы с учетными данными

Я хочу установить приложение из другого приложения. Я знаю, что это возможно с помощью следующего кода:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",@"itms-services://?action=download-manifest&url=",self.plistURL]];
[[UIApplication sharedApplication] openURL:url];

Моя проблема в том, что .plist находится в области на сервере, где пользователь должен ввести учетные данные для доступа к нему. Поэтому, когда я выполняю этот код, у пользователя запрашивают учетные данные в Safari. Но я этого не хочу. Я хочу, чтобы приложение ввело учетные данные.

Я уже пытался открыть настраиваемую схему URL-адресов с помощью операции AFNetworking, но мне кажется, что она не может обрабатывать настраиваемые схемы URL-адресов, потому что я получаю сообщение об ошибке:

"Unsupported url"

Итак, мой вопрос: есть ли способ использовать itms-services с учетными данными пользователя или есть обходной путь?

Я также подумал, что, возможно, загрузка plist и выполнение его с внутреннего URL-адреса может решить проблему, но я хотел убедиться, что нет более простого способа.

Спасибо, что прочитали мой вопрос!


person Philipp Otto    schedule 02.02.2014    source источник


Ответы (2)


После некоторого времени экспериментов я не думаю, что можно использовать itms-services с учетными данными. В итоге я передал учетные данные прямо в URL-адресе:

https://Username:Password@plisturl

В plist я также добавил учетные данные в URL-адрес ipa. Я не думаю, что добавление учетных данных в виде открытого текста является чистым решением, но это единственное решение, которое я вижу на данный момент.

Держите меня в курсе, если у кого-то есть лучшее решение.

person Philipp Otto    schedule 13.02.2014
comment
Имейте в виду, iOS8 может не поддерживать это. Я могу подтвердить, что ваше решение работает в iOS 4-7. - person Scott Corscadden; 16.09.2014
comment
Похоже, это не работает в iOS 8.1.3. Сначала Safari выдает предупреждение о фишинге ... Затем вы получаете сообщение «Невозможно загрузить приложение с iOS во время установки». Похоже, это работает достаточно, чтобы добраться до .plist, однако URL-адрес ресурса, содержащий UN / PW, кажется, приводит к сбою. - person Travis Swientek; 04.03.2015
comment
Привет Трэвис. Я протестировал установку на iPad3 с iOS 8.1.3, и приложение по-прежнему устанавливается правильно, без проблем. Вы проверили, что ваша установка работала на предыдущих версиях iOS? - person Philipp Otto; 09.03.2015

Это помогает? Использование токена может быть немного более безопасным, чем простой текст.

https://docs.google.com/document/d/1H255a9QacH06Z9-239xAOEixbR967RmLu7-o0siRaJg/edit?pli=1

person mani-fresh    schedule 17.02.2014