невозможно проверить, существует ли профиль конфигурации на iPhone

Я пытаюсь проверить, существует ли профиль конфигурации на iPhone. Я нашел следующее руководство о том, как это сделать: http://alex.tapmania.org/2011/09/check_conf_prof_is_installed_ios.html

который для меня переводится в следующий код:

NSString * certPath = [[NSBundle mainBundle] pathForResource:@"certificate" ofType:@"mobileconfig"];
    SecTrustRef trust;
    NSData * certData = [NSData dataWithContentsOfFile:certPath];
    SecCertificateRef cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef) certData);
    SecPolicyRef policy = SecPolicyCreateBasicX509();
    OSStatus err = SecTrustCreateWithCertificates((__bridge CFArrayRef) [NSArray arrayWithObject:(__bridge id)cert],policy, &trust);

    SecTrustResultType  trustResult = -1;
    err = SecTrustEvaluate(trust, &trustResult);


    if (trustResult ==4) {
        label.text=@"Profile installed";
    }
    else{
        label.text=@"Profile not installed";
    }

приложение вылетает на строке:

OSStatus err = SecTrustCreateWithCertificates((__bridge CFArrayRef) [NSArray arrayWithObject:(__bridge id)cert],policy, &trust);

Я также заметил, что на данном этапе cert не имеет выделенной памяти.

Что случилось? это правильная процедура? если нет, есть ли другой учебник, который более полезен?

Спасибо!


person user1415780    schedule 08.11.2012    source источник
comment
Сможете ли вы справиться с вышеуказанной задачей?   -  person Meet    schedule 20.08.2013
comment
Чувак, ты нашел решение??   -  person vishnuvarthan    schedule 11.08.2014


Ответы (2)


Я не уверен, почему вы хотите сделать это с помощью кода. Существуют приложения для Mac OSx, которые уже делают это за вас. Если то, что вы собираетесь делать, не требует написания кода, вы можете загрузить это приложение для Mac под названием Утилита настройки iPhone с этого ссылка Apple. Имеет множество функций, включая настройку / просмотр / и т. Д. Профили, установленные на iPhone.

person Just a coder    schedule 12.03.2013

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

Я создал свою пару сертификатов, используя openSSL для win32 от ShiningLight. Полные инструкции о том, как это сделать, можно найти здесь: http://www.dylanbeattie.net/docs/openssl_iis_ssl_howto.html

обратите внимание, однако, что есть несколько ошибок:

  1. при создании корневого сертификата для параметра basicconstraints=CA в файле конфигурации должно быть установлено значение TRUE (для другого сертификата требуется FALSE).

  2. Чтобы IO могли их прочитать, оба сертификата должны быть закодированы с использованием DER. Чтобы сделать это с помощью openssl, вам нужно запустить команду, аналогичную openssl x509 -in certs/cert.cer -out certs/certDER.cer -outform DER для обоих сертификатов. Я сильно подозреваю, что это неправильная кодировка, которая приводит к сбою вашего кода.

person Daz Eddy    schedule 11.12.2013