Как: использовать Automator для распределения бета -применений для установки воздуха
-
14-10-2019 - |
Вопрос
Как автоматизировать процесс распространения приложения для загрузки воздуха. Чтобы загрузить на воздух, вы должны быть в профиле распределения (Не уверен, нужно ли пользователю загрузить более одного из них, чтобы загрузить более одного приложения)
Шаги:
- Строить и архивировать и сохранить на диск
- Загрузить на веб -сайт, замена старой версии
- Обновлять Веб -сайт iPhone с датой
Ответ ниже, мой длинный ответ. Первоначально это был вопрос, но через некоторое время я сам его решил. Вы можете даже настроить его так, чтобы при отправке определенного электронного письма он создал его, чтобы вы могли написать код на GO (с помощью Dropbox и DropText), а затем установить на свой телефон и увидеть различия.
Обновление (2012):https://testflightapp.com/ значительно улучшил свою систему развертывания, включая отслеживание использования пользователей. Я считаю, что с этими дополнениями, возможно, стоило бы того, чтобы система развертывания была маркирована ими, чтобы получить эти дополнительные функции. Можно объединить двух систем, используя мою систему для записи кода на iPad, создать и компилировать на удаленном компьютере, а затем установить ее на iPad для тестирования на разработку, а затем использовать Testflight для бета -пользователей. Или просто используйте Testflight полностью.
Решение
Макет файла веб -сайта
- name.com/index.php (сайт iPhone, необязательно, но рекомендуется)
- name.com/application/index.php (Базовая автоматическая ссылка создает сайт)
- name.com/application/application.ipa (только файл, который необходимо обновить)
- name.com/application/application.plist
- name.com/application/application57.png
- name.com/application/application512.png
- name.com/application/application_distribution_profile.mobileprovision
Решение с использованием Automator:
Первое действие: запустить скрипт оболочки создать и архивировать и сохранить в файл .ipa. Может потребоваться некоторое время, чтобы выяснить, как изменить это, чтобы соответствовать вашей ситуации, как это было со мной (это может не работать с Xcode 4, и если у вас есть проблемы, просто строите и архивируйте внутри Xcode)
PROJDIR="/Users/username/Xcode/applicationfolder"
PROJECT_NAME="application"
APPLICATION_NAME="Application"
TARGET_SDK="iphonesimulator4.0"
PROJECT_BUILDDIR="${PROJDIR}/build/Distribution-iphoneos"
TARGET_TEST_NAME="application"
BUILD_HISTORY_DIR="${PROJDIR}/distribution/" #where you want the .ipa to go
DEVELOPER_NAME="First Last (TMTE9G3NGS)"
PROVISONING_PROFILE="/Users/username/Xcode/Application_Distribution_Profile.mobileprovision"
# compile project
echo Building Project
cd "${PROJDIR}"
xcodebuild -target "${PROJECT_NAME}" -sdk "${TARGET_SDK}" -configuration Distribution
#Check if build succeeded
if [ $? != 0 ]
then
exit 1
fi
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${PROJECT_BUILDDIR}/${PROJECT_NAME}.app" -o "${BUILD_HISTORY_DIR}/${APPLICATION_NAME}.ipa" --sign "${DEVELOPER_NAME}" --embed "${PROVISONING_PROFILE}"
Действие второе: получите элемент Finder
Файл приложения .ipa, который был только что сохранен.
Действие три: загрузить на FTP -сервер
Google для скрипта (не может опубликовать URL) его на Automatorworld Dot Com, должен быть легко найти. Используйте этот скрипт, чтобы загрузить файл туда, где вы хотите. В моем случае name.com/application/application.ipa
Теперь для сайта конец вещей.
Если вы хотите иметь базовый способ для пользователей загрузить файл, просто положив файл index.php (созданный ниже), файл Application.plist (созданный ниже), файл .ipa и изображение 57 пикселей и 512 пикселей в папка.
Я сделал еще один шаг вперед и создал сайт HTML iPhone, на который вы можете перейти, который также показывает, когда файл был обновлен в последний раз. Вы можете создать этот сайт, используя этот шаблон: http://snipt.org/vmup/ Мне пришлось использовать базовый сайт для копирования URL, который он создал для ссылок на IPA и MobileProvision. Вот фрагмент, который у меня есть для ссылки с автоматическим обновлением последней обновленной датой. Для получения последнего обновленного текста мне пришлось изменить файл на .php.
<li><a href="URL FROM BASIC SITE HERE"><span class="menuname">Install Application Name</span><span class="itemarrow"></span></a></li>
<sup>
Last Updated: <?= date("m/d/Y H:i",filemtime("applicationfolder/application.ipa")) ?> (TIME ZONE HERE)
<sup>
Основная автоматическая ссылка Создание файла индекса приложений:
<?php $ipas = glob('*.ipa'); $provisioningProfiles = glob('*.mobileprovision'); $plists = glob('*.plist'); $sr = stristr( $_SERVER['SCRIPT_URI'], '.php' ) === false ? $_SERVER['SCRIPT_URI'] : dirname($_SERVER['SCRIPT_URI']) . '/'; $provisioningProfile = $sr . $provisioningProfiles[0]; $ipa = $sr . $ipas[0]; $itmsUrl = urlencode( $sr . 'index.php?plist=' . str_replace( '.plist', '', $plists[0] ) ); if ($_GET['plist']) { $plist = file_get_contents( dirname(__FILE__) . DIRECTORY_SEPARATOR . preg_replace( '/![A-Za-z0-9-_]/i', '', $_GET['plist']) . '.plist' ); $plist = str_replace('_URL_', $ipa, $plist); header('content-type: application/xml'); echo $plist; die(); } ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Install iOS App</title> <style type="text/css"> li { padding: 1em; } </style> </head> <body> <ul> <li><a href="<? echo $provisioningProfile; ?>">Install Team Provisioning File</a></li> <li><a href="itms-services://?action=download-manifest&url=<? echo $itmsUrl; ?>"> Install Application</a></li> </ul> </body> </html>
Файл PLIST приложения:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>IPA FILE LINK HERE</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>URL FOR 512 PIXEL IMAGE HERE</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>URL FOR 57 PIXEL IMAGE HERE</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>COM.COMPANY.APPLICATION</string>
<key>bundle-version</key>
<string>VERSION NUMBER HERE (YOU DON'T REALLY NEED TO UPDATE IT UNLESS YOU WANT TO)</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>APPLICATION NAME HERE</string>
</dict>
</dict>
</array>
</dict>
</plist>
Другие советы
Это выглядит применимо: http://blog.octo.com/en/automating-over-the-ire-deployment-for-iphone/
Из этого вопроса: Xcode "сборка и архив" из командной строки