Используйте любую ссылку в ссылках сервис-сервис для распространения приложений.

Я хотел бы использовать другую ссылку, чем прямую ссылку на файл .plist в ссылках на службы itms-service, но, похоже, iOS не вызывает этого.

<a href="itms-services://?action=download-manifest& url=http://example.com/app.plist">Install App</a> 

Это работает, но если я попытаюсь вызвать скрипт, который выводит .plist, я не вижу запроса, входящего на веб-сервер.

 <a href="itms-services://?action=download-manifest& url=http://example.com/ checksomething?param=test">Install App</a> 

Кто-нибудь знает, почему?

Может быть, iOS проверяет, содержит ли ссылка .plist и не вызывает ссылку, если ее нет?


Хорошо, теперь я знаю, что передача URL-адреса в iOS не выполняется:

 if ([[UIApplication sharedApplication]canOpenURL:url]) { [[UIApplication sharedApplication]openURL:url]; return NO; } 

Возможно, объекту NSURL нужен параметр отдельно.

Знак вопроса – зарезервированный символ. Вам нужно закодировать его как %3F . То же самое касается знака равенства – он должен быть %3D .

Если вы используете PHP 5, urlencode () и http_build_query () могут выполнять большую часть сложной работы по экранированию специальных символов для вас. Эти функции также позволяют избежать проблем, когда некоторые из ваших пар параметров / значений параметров GET могут иметь чувствительные символы, которые необходимо безопасно передавать, например

 <?php $base_url = "http://example.com/checksomething"; $data = Array("param" => "test", "dangerous" => ":?&= are some sensitive chars"); $itms_url = "itms-services://?action=download-manifest&url=" . urlencode($base_url . "?" . http_build_query($data)); ?> <a href="<?=$itms_url;?>">Install App</a>