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

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

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

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

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

Я распространяю свои приложения без проводов в течение нескольких месяцев без проблем. Конечно, я распространяю лицензию 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 изображения» дайте ему путь к вашим большим (512×512) и небольшим (72×72) файлам значков (я разрабатываю для 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 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-адреса для ваших товаров следующим образом:

 ".$root."ipa_serve.php?app=". $_GET['app']." 

и завершите его одним последним заголовком, прежде чем вы выполните эхо-строку xml:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что может произойти:

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

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

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

  • Поиск NSArray для значения соответствия значений
  • Как включить и использовать новые шрифты в iPhone SDK?
  • Центральное содержимое UIScrollView при меньшем
  • iOS: конвертировать UTC NSDate в локальный часовой пояс
  • Чтение аудио сэмплов через AVAssetReader
  • Как отсортировать NSMutableArray с помощью sortedArrayUsingDescriptors?
  • Стилизация кнопки отмены в UISearchBar
  • Расчет скорости соединения / загрузки
  • Потяните, чтобы обновить UITableView без UITableViewController
  • Простое обнаружение движения iPhone
  • Как написать данные в plist?
  • Interesting Posts

    В чем разница между chkdsk / f и chkdsk / r?

    Ручное закрытие порта из командной строки

    Использование VirtualPathProvider для загрузки представлений ASP.NET MVC из DLL

    Вентилятор ноутбука должен начинать и останавливаться очень часто?

    Как получить дубликаты элементов из списка с помощью LINQ?

    Что такое WebKit и как это связано с CSS?

    Как легко отобразить перечислимые переменные c ++ в строки

    «Смотреть» вывод команды до тех пор, пока не будет наблюдаться определенная строка, а затем выйдите

    Приложения иногда не отображаются на системном трее

    Что такое квалификаторы верхнего уровня?

    Как читать / анализировать ввод в C? Часто задаваемые вопросы

    Элементы в проводнике не меняют цвет при выборе в Windows 10

    Проблема в Windows 10 с отсутствием прозрачности значка для значков системы

    Не удалось подключиться к беспроводной сети после обновления до Windows 8.1 с 8

    Как проверить логическое состояние в EL?

    Давайте будем гением компьютера.