Ответ 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.