Установка конфигурации представляет на iPhone - программно

Я хотел бы поставить профиль конфигурации со своим приложением для iPhone и установить его в случае необходимости.

Обратите внимание, мы говорим о профиле конфигурации, не профиле настройки.

Прежде всего такая задача возможна. Если Вы поместите профиль конфигурации в Веб-страницу и нажмете на него от Safari, то это будет установлено. Если Вы пошлете профиль по электронной почте и нажмете вложение, то это установит также. "Установленный" в этом средстве случая "Установка UI вызывается" - но я даже не мог получить это далеко.

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

A) Во-первых, я попробовал [sharedApp openURL] URL file:// в свой пакет. Никакая такая удача - ничего не происходит.

B) Я затем добавил страницу HTML к своему пакету, который имеет ссылку на профиль и загрузил его в UIWebView. Нажимание на ссылку ничего не делает. Загрузка идентичной страницы от веб-сервера в Safari, однако, хорошо работает - ссылка активируема по щелчку, установки профиля. Я обеспечил UIWebViewDelegate, ответив Да на каждый запрос навигации - никакое различие.

C) Затем я пытался загрузить ту же Веб-страницу из своего пакета в Safari (использующий [sharedApp openURL] - ничего не происходит. Я предполагаю, Safari не видят файлы в моем комплекте приложений.

D) Загрузка страницы и профиля на веб-сервере является выполнимой, но боль на организационном уровне, не говоря уже о дополнительном источнике отказов (что, если никакое 3G покрытие? и т.д.).

Таким образом, мой большой вопрос: **, как я устанавливаю профиль программно?

И мало вопросов: что может сделать ссылку неактивируемой по щелчку в UIWebView? Действительно ли возможно загрузить URL file:// из моего пакета в Safari? В противном случае есть ли местное расположение на iPhone, куда я могу поместить файлы, и Safari может найти их?

РЕДАКТИРОВАНИЕ на B): проблема находится так или иначе в том, что мы связываемся с профилем. Я переименовал его от .mobileconfig до .xml (потому что это - действительно XML), изменил ссылку. И ссылка работала в моем UIWebView. Переименованный в него назад - тот же материал. Выглядит, как будто UIWebView отказывается сделать материал всего приложения - так как установка профиля закрывает приложение. Я пытался говорить этому, что это в порядке - посредством UIWebViewDelegate - но это не убедило. То же поведение для mailto: URL в UIWebView.

Для mailto: URL общая техника состоит в том, чтобы перевести их в [openURL] вызовы, но это не вполне работает на мой случай, видят сценарий A.

Для itms: URL, однако, UIWebView работает как ожидалось...

EDIT2: испытанное питание URL данных к Safari через [openURL] - не работает, видит здесь: iPhone Open DATA: URL В Safari

EDIT3: найденный большим количеством информации о том, как Safari не поддерживает URL file://. UIWebView, однако, очень делает. Кроме того, Safari на средстве моделирования открывают их очень хорошо. Последний бит является самым печальным.


EDIT4: Я никогда не находил решение. Вместо этого я соединил двухбитовый веб-интерфейс, где пользователи могут заказать профиль, посланный по электронной почте им.

72
задан Community 23 May 2017 в 12:02
поделиться

4 ответа

На этой странице объясняется, как использовать изображения из вашего пакета в UIWebView.

Возможно, то же самое будет работать и для профиля конфигурации.

0
ответ дан 24 November 2019 в 12:45
поделиться

Вы пробовали, чтобы приложение просто отправляло пользователю почту с профилем конфигурации при первом запуске?

-(IBAction)mailConfigProfile {
     MFMailComposeViewController *email = [[MFMailComposeViewController alloc] init];
     email.mailComposeDelegate = self;

     [email setSubject:@"My App's Configuration Profile"];

     NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MyAppConfig" ofType:@"mobileconfig"];  
     NSData *configData = [NSData dataWithContentsOfFile:filePath]; 
     [email addAttachmentData:configData mimeType:@"application/x-apple-aspen-config" fileName:@"MyAppConfig.mobileconfig"];

     NSString *emailBody = @"Please tap the attachment to install the configuration profile for My App.";
     [email setMessageBody:emailBody isHTML:YES];

     [self presentModalViewController:email animated:YES];
     [email release];
}

Я сделал это IBAction на случай, если вы захотите привязать его к кнопке, чтобы пользователь мог повторно отправить его себе в любое время. Обратите внимание, что в приведенном выше примере у меня может не быть правильного типа MIME, вам следует это проверить.

0
ответ дан 24 November 2019 в 12:45
поделиться

Я подумал о другом способе работы (к сожалению, у меня нет профиля конфигурации для тестирования):

// Create a UIViewController which contains a UIWebView
- (void)viewDidLoad {
    [super viewDidLoad];
    // Tells the webView to load the config profile
    [self.webView loadRequest:[NSURLRequest requestWithURL:self.cpUrl]];
}

// Then in your code when you see that the profile hasn't been installed:
ConfigProfileViewController *cpVC = 
        [[ConfigProfileViewController alloc] initWithNibName:@"MobileConfigView"
                                                      bundle:nil];
NSString *cpPath = [[NSBundle mainBundle] pathForResource:@"configProfileName"
                                                   ofType:@".mobileconfig"];
cpVC.cpURL = [NSURL URLWithString:cpPath];
// Then if your app has a nav controller you can just push the view 
// on and it will load your mobile config (which should install it).
[self.navigationController pushViewController:controller animated:YES];
[cpVC release];
0
ответ дан 24 November 2019 в 12:45
поделиться

Я думаю, что вы ищете "беспроводную регистрацию" с использованием простого протокола регистрации сертификатов (SCEP). Посмотрите OTA Enrollment Guide и раздел SCEP Payload в Enterprise Deployment Guide .

Согласно Обзору конфигурации устройства у вас есть только четыре варианта:

  • Настольная установка через USB;
  • Электронная почта (вложение)
  • Веб-сайт (через Safari)
  • Регистрация и распространение по воздуху
4
ответ дан 24 November 2019 в 12:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: