КАК: Использовать Automator для распространения бета-приложений для беспроводной установки - PullRequest
4 голосов
/ 30 декабря 2010

Как автоматизировать процесс распространения приложения по беспроводной загрузке.Для загрузки по беспроводной сети вы должны быть в профиле распространения (не уверен, нужно ли пользователю загружать более одного из них, чтобы загрузить более одного приложения)

Шаги:

  • Сборка и архивирование, а также сохранение на диск
  • Загрузка на веб-сайт, замена старой версии
  • Обновление Сайт iPhone с датой

Ответ ниже, мой длинный ответ.Изначально это был вопрос, но через некоторое время я решил его сам.Вы даже можете настроить его так, чтобы при отправке определенного электронного письма оно создавалось таким образом, чтобы вы могли написать код на ходу (используя Dropbox и Droptext), а затем установить его на свой телефон и увидеть различия.

Обновление(2012): https://testflightapp.com/ значительно улучшил свою систему развертывания, включая отслеживание использования пользователями.Я полагаю, что с этими дополнениями, возможно, стоило бы использовать систему развертывания, чтобы они получили эти дополнительные функции.Можно объединить две системы, используя мою систему для написания кода на iPad, сборки и компиляции на удаленном компьютере, а затем установить его на iPad для тестирования разработки, а затем использовать TestFlight для пользователей бета-версии.Или просто используйте TestFlight целиком.

Ответы [ 2 ]

7 голосов
/ 01 января 2011

Формат файла веб-сайта

  • 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>
&nbsp; &nbsp; 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>

Плист файла приложения:

<?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>
2 голосов
/ 30 декабря 2010
...