Ошибка, которую вы получаете, заключается в том, что iOS ожидает, что URL-адрес службы вашего профиля (тот, на который она отправляет свой UDID) вернет профиль конфигурации (то есть файл .mobileconfig
). В настоящее время я фиксирую UDID устройства, не возвращая этот профиль; мои устройства генерируют оповещение, которое вы описываете, но данные находятся на моем сервере.
Для справки, вот (очень) простой файл PHP, который я использую для сбора данных:
<?php
// set file to write
$file = 'device_data/data.p7s';
$fp = fopen($file, 'w') or die('Could not open file!');
fwrite($fp, $HTTP_RAW_POST_DATA) or die('Could not write to file');
fclose($fp);
?>
Ключевым моментом здесь является использование переменной $HTTP_RAW_POST_DATA
для точного захвата тела HTTP-запроса в том виде, в котором он был отправлен, без попытки разбить его на обычные пары имя / значение. Я бы предложил прочитать документацию на данный момент, но на самом деле это мало о чем вам говорит.
Совет по безопасности: все, что пользователь отправляет в теле запроса, вы записываете в файл на своем сервере. Если пользователь решает отправить сценарий оболочки, файл PHP или другое исполняемое содержимое, а затем посещает URL создаваемого вами файла, он может выполнить код, только что загруженный на ваш веб-сервер. Итак, убедитесь, что файл, в который вы пишете, не доступен по HTTP ! (Файл .htaccess
сработает или напишет куда-нибудь за пределами корневого каталога.)