Подтвердить что ты не робот

Как распределить приложение ios без проводов без управления UDID и перекомпиляции

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

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

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

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

4b9b3361

Ответ 1

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

New->File->Code Signing->Entitlements

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

"Can be debugged" to NO

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

Product->archive

затем с помощью вашей новой записи нажмите:   Доля

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, в котором есть все ID устройства, встроенные в него, если вы не являетесь частью корпоративной программы, но можете попробовать и посмотреть. После того, как все файлы находятся на 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 скрипт, 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 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.

Ответ 2

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

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

Ответ 3

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

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

Вам просто нужно получить бесплатный номер DUNS от Dun и Bradstreet, который занимает 30 дней. Мы обратились за нами и увидим, как все это выйдет.

Ответ 4

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

Теперь вы можете сделать ad-hoc-дистрибутивы с помощью Wireless App Distribution.

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

Ответ 5

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

Ответ 6

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

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

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

Что может случиться:

  • Сервер отправляет вам "профиль конфигурации" (см. SCEP/enterprise whatever). По-видимому, это можно использовать для получения UDID вашего устройства. TestFlight делает это.
  • Сервер автоматически выполняет несколько действий (либо с помощью скрипинга экрана, либо через какой-либо Enterprise API, если он есть):
    • Добавьте UDID устройства в список устройств Apple.
    • Скажите apple, чтобы создать профиль подготовки.
    • Загрузите профиль подготовки.

Ответ 7

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

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