Как распространять приложение ios по беспроводной сети без управления UDID и перекомпиляции - PullRequest
59 голосов
/ 05 апреля 2011

Мне нужно знать, какие методы люди используют для беспроводного распространения демонстрационной версии приложения iPad без необходимости управления UDID?

Мне не нужно такое решение, как testflight или betabuilder, все это требует от меняуправлять UDID на портале профиля обеспечения Apple.

Я задаю этот вопрос, потому что я вижу, как другая студия сейчас работает намного умнее, и я хочу знать, как они это сделали - со ссылкой, которую они дали намМы можем установить их демонстрационное приложение из простого HTML по беспроводной сети, и на моем iPad волшебным образом появляется профиль обеспечения.Все это произошло без того, чтобы я не сообщил им UDID моего iPad, и, следовательно, определенно без них, чтобы перекомпилировать проект.

Как они это сделали?

Ответы [ 7 ]

74 голосов
/ 06 апреля 2011

Я распространял свои приложения по беспроводной сети в течение нескольких месяцев без проблем.Конечно, я распространяю по лицензии Enterprise, которая стоит 299 долларов в год и предназначена для внутреннего использования.Это может работать с обычной лицензией разработчика, но вам нужно провести некоторое тестирование, чтобы убедиться.Я предполагаю, что процесс такой же, если он работает.Я использую XCode 4, так что это может немного отличаться, если вы используете другую версию.По сути, вы должны добавить файл Entitlements.plist к своим ресурсам:

New->File->Code Signing->Entitlements

, и перед распространением вы должны изменить:

"Can be debugged" to NO

Убедитесь, что ваш проект настроенс правильными профилями подписи кода.Теперь перейдите по адресу:

Product->archive

, затем с новой созданной записью нажмите: Share

Select "iOS App Store Package (.ipa)"

и выберите нужный профиль распространения, который вы хотите использовать.Нажмите «Далее», затем выберите место для сохранения файла .ipa.Прежде чем нажать кнопку «Сохранить», необходимо проверить

Save for Enterprise Distribution

.ipa-файл должен быть сохранен на FTP-сервере, или, по крайней мере, так я его получил.В поле «URL-адрес приложения» укажите путь к файлу .ipa, который вы хотите сохранить, например,

ftp://ftp.company.com/Installers/myApp.ipa

Дайте ему название, затем в «URL-адресе большого изображения» и «Маленьком изображении».URL "укажите путь к вашим большим (512x512) и маленьким (72x72) файлам значков (я разрабатываю для iPad, поэтому iPhone может отличаться).Например,

ftp://ftp.company.com/Installers/small.png

Сохраните файл .ipa.Теперь вам нужно разместить файл .mobileprovision на ftp-сервере.Любой, кто хочет запустить приложение, нуждается в установленном файле, иначе он не сможет его запустить.Теперь я не уверен, понадобится ли вам файл .mobileprovision, в который встроены все идентификаторы устройств, если вы не являетесь частью корпоративной программы, но вы можете попробовать и посмотреть.Как только все ваши файлы будут на ftp-сервере, вам нужно создать электронное письмо со ссылками на эти два файла, но ссылка на файл .ipa должна быть в специальном формате.Для файла обеспечения:

ftp://ftp.company.com/Installers/profile.mobileprovision

и для файла .ipa:

itms-services:///?action=download-manifest&url=ftp%3A%2F%2Fftp.company.com%2FInstallers%2FmyApp.plist

Теперь, когда вы отправляете это письмо кому-то, ему просто нужно сначала загрузить и установить .mobileprovision.файл, затем файл .ipa.Вуаля, они запускают вашу программу.Дайте мне знать, если это работает без корпоративной подписки.Я предполагаю, что это будет, пока файл .mobileprovision содержит идентификаторы устройства.

Редактировать:

Я нашел гораздо лучший способ распространения приложений, но он требует наличия PHP-сервера.Что вы делаете, это создаете файл PHP, который генерирует файл plist на лету и возвращает его.В ссылках на большое изображение, маленькое изображение и файл ipa вы передаете ссылки на другие файлы PHP, которые возвращают эти вещи для вашей конкретной программы.Если вы хотите установить приложение по ссылке, вы просто передаете URL-адрес следующим образом:

itms-services:///?action=download-manifest&url=http://mycompany.com/php/installApp.php?app=myappname

В ваших функциях PHP вы просто вставляете myappname в другие вызовы PHP, что приведет к извлечению нужных файлов.с вашего сервера.Используя этот метод, вам не нужно сохранять plist-файлы для любых ваших приложений по мере их создания, что упрощает обновление ваших приложений, поскольку вам не нужно каждый раз вводить информацию повторно, даже не устанавливайте флажок длякорпоративный дистрибутив, просто сохраните файл ipa поверх старого, и все готово.Кроме того, с помощью этого метода легко реализовать функции безопасности и входа в систему.Кроме того, вам не нужно специально устанавливать файл мобильного обеспечения, так как он устанавливается самостоятельно при установке приложения.Он хранится в файле ipa.

Редактировать:

Просто для пояснения метода PHP, вы создаете файл php, который создает файлы plist.Скопируйте стандартный plist-файл, созданный из дистрибутива корпоративного дистрибутива, затем в своем php-файле установите заголовки следующим образом:

$pathToAddFi = "installers/".$_GET['app'].".plist"; //points to the php server file location of your .ipa files. when you call this php script, you pass in the name of the ipa file you want to install. Note: this location doesn't actually contain any plist files!
$root = "http://yourserver.com/php/root/"; //path to this PHP file's directory

header('content-type: application/xml');
header('Content-Disposition: attachment; filename='.basename($pathToAddFi));
header('Content-Transfer-Encoding: binary');

Затем создайте строку, заменяющую URL-адреса для ваших элементов, например:

<string>".$root."ipa_serve.php?app=". $_GET['app']."</string>

и завершите его последним заголовком перед тем, как повторить строку XML:

header('Content-Length: ' . strlen($myXml));

Наконец, вы создаете php-файл для обслуживания вашего ipa-файла, один для обслуживания вашего большого изображения и один для обслуживания вашего маленького изображения.Должно быть довольно простым, если вы не очень знакомы с PHP.

8 голосов
/ 20 апреля 2011

Я только что прошел через то же самое.Я думаю, что большой разницей является профиль корпоративного распространения (299 долларов в год) - если у вас есть один из них, вам не нужно указывать UDID устройства в списке.Если у вас есть нормальная сделка за 99 долларов в год, вы должны.Все просто.

Хорошая новость заключается в том, что Apple недавно сняла ограничение «500 сотрудников», поэтому любая компания может получить один из них: http://blog.apperian.com/2010/10/apple-opens-ios-developer-enterprise.html

Вам просто нужно получить бесплатные DUNSЧисло от Дун и Брэдстрит, которые занимают 30 дней.Мы подали заявку на нашу и посмотрим, как все это получится.

7 голосов
/ 06 апреля 2011

Вам нужен профиль обеспечения, но он встроен в файл .ipa, его не нужно устанавливать через iTunes как отдельную установку.

Вам следует проверить TestFlight ,веб-приложение для управления дистрибутивами сборок OTA Ad Hoc;это невероятно.Он делает все умные вещи, включая сбор UDID для устройств вашего пользователя для вас.(Вы, разработчик, по-прежнему должны вводить их на портал инициализации iPhone Dev Center, но пользователь может оставаться в блаженном неведении о том, что UDID даже существуют, не говоря уже о том, что они должны отправить его вам..)

2 голосов
/ 05 апреля 2011

Приложение, на которое вы ссылаетесь, называется Beta Builder .Мой босс использовал его впервые сегодня, и он отлично работал.Определенно стоит $ 2.

2 голосов
/ 05 апреля 2011

Я не знаю, как это сделать без UDID пользователя.Я предполагаю, что разработчик уже имел UDID вашего босса ранее и создал / связал новый профиль обеспечения, или ваш босс тестировал мобильное веб-приложение.

Теперь с помощью Wireless App Distribution вы можете сделать специальные рассылки немного проще.

iOS 4: распространение беспроводных приложений для собственных приложений

0 голосов
/ 22 июня 2015

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

HockeyApp бесплатен и позволяет загружать вашиEnterprise (и Ad-Hoc) создает и служит общедоступной страницей загрузки.Обратите внимание, что это будет работать только без регистрации пользователей и предоставления UDID их устройств, если у вас есть учетная запись Apple Enterprise, как уже упоминали другие, но это, безусловно, самый простой и быстрый рабочий процесс для быстрого распространения приложений среди клиентов без дополнительных затрат на подготовку устройства.

0 голосов
/ 07 апреля 2011

Все это произошло без того, что я не сообщил им UDID моего ipad, и, следовательно, определенно без них, чтобы перекомпилировать проект.

Малоизвестный факт: вам не нужно перекомпилироватьприложение.Вам даже не нужно отказываться от приложения.Все, что имеет значение, - это наличие установленного профиля обеспечения, который «достаточно похож» на внедренный.mobileprovision внутри приложения (имя профиля? Идентификатор пакета? Начальное число пакета? Кто знает).

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

Что может происходить:

  1. Сервер отправляет вам «профиль конфигурации» (см. SCEP / предприятие независимо от того, что).Очевидно, это можно использовать для получения UDID вашего устройства.TestFlight делает это.
  2. Сервер автоматически делает несколько вещей (либо с помощью скриншота экрана, либо через некоторый Enterprise API, если таковой имеется):
    1. Добавление UDID устройства в список устройств Apple.
    2. Скажите apple, чтобы сгенерировал профиль обеспечения.
    3. Загрузите профиль обеспечения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...