Предварительные просмотры
РЕКВИЗИТЫ
Создавая приложение, вы можете захотеть поделиться им с другими, чтобы получить отзывы. Традиционно команды делают это, создавая, подписывая и отправляя свои приложения на такие платформы, как [TestFlight] от Apple (https://developer.apple.com/testflight/). Однако этот процесс может быть громоздким и медленным, особенно если вы просто хотите получить быстрый отзыв от коллеги или друга.
Чтобы сделать этот процесс более упорядоченным, Tuist предоставляет возможность создавать предварительные версии ваших приложений и делиться ими с кем угодно.
DEVICE BUILDS NEED TO BE SIGNED
В настоящее время при создании приложения для устройства вы несете ответственность за правильность подписи приложения. В будущем мы планируем упростить эту процедуру.
bash
tuist build App # Build the app for the simulator
tuist build App -- -destination 'generic/platform=iOS' # Build the app for the device
tuist share Appbash
xcodebuild -scheme App -project App.xcodeproj -configuration Debug # Build the app for the simulator
xcodebuild -scheme App -project App.xcodeproj -configuration Debug -destination 'generic/platform=iOS' # Build the app for the device
tuist share App --configuration Debug --platforms iOS
tuist share App.ipa # Share an existing .ipa fileКоманда сгенерирует ссылку, которой вы можете поделиться с кем угодно, чтобы запустить приложение - либо на симуляторе, либо на реальном устройстве. Все, что им нужно будет сделать, - это выполнить команду, приведенную ниже:
bash
tuist run {url}
tuist run --device "My iPhone" {url} # Run the app on a specific deviceПри совместном использовании файла .ipa можно загрузить приложение непосредственно с мобильного устройства, используя ссылку Preview. Ссылки на предварительный просмотр .ipa по умолчанию общедоступны. В будущем у вас будет возможность сделать их приватными, чтобы получателю ссылки нужно было авторизоваться в своей учетной записи Tuist для загрузки приложения.
tuist run также позволяет запустить последнюю версию превью на основе такого спецификатора, как latest, имени ветки или определенного хэша коммита:
bash
tuist run App@latest # Runs latest App preview associated with the project's default branch
tuist run App@my-feature-branch # Runs latest App preview associated with a given branch
tuist run App@00dde7f56b1b8795a26b8085a781fb3715e834be # Runs latest App preview associated with a given git commit shaТреки
Треки позволяют организовать предварительные просмотры в именованные группы. Например, у вас может быть трек beta для внутренних тестеров и трек nightly для автоматических сборок. Треки создаются лениво - просто укажите имя трека при публикации, и он будет создан автоматически, если его не существует.
Чтобы поделиться предварительным просмотром на определенной дорожке, используйте параметр --track:
bash
tuist share App --track beta
tuist share App --track nightlyЭто полезно для:
- Организация предварительных просмотров: Группируйте предварительные просмотры по назначению (например,
beta,nightly,internal). - Обновления в приложении: Tuist SDK использует треки для определения обновлений, о которых следует уведомлять пользователей.
- Фильтрация: Удобный поиск и управление превью по трекам на приборной панели Tuist
Визитная карточка ПРЕДИСЛОВИЕ
Только люди с доступом к организации, к которой принадлежит проект, могут получить доступ к предварительным просмотрам. Мы планируем добавить поддержку ссылок с истекающим сроком действия.
Приложение Tuist для macOS
Чтобы сделать запуск Tuist Preview еще проще, мы разработали приложение Tuist для macOS. Вместо того чтобы запускать Previews через Tuist CLI, вы можете скачать приложение для macOS. Вы также можете установить приложение, выполнив команду brew install --cask tuist/tuist/tuist.
Когда вы нажмете кнопку "Запустить" на странице предварительного просмотра, приложение для macOS автоматически запустится на выбранном устройстве.
РЕКВИЗИТЫ
Вам необходимо иметь локально установленный Xcode и быть на macOS 14 или более поздней версии.
Приложение Tuist для iOS
Как и приложение для macOS, приложение Tuist для iOS упрощает доступ к предварительным просмотрам и их запуск.
Комментарии к Pull/merge-запросам
ИНТЕГРАЦИЯ С ПЛАТФОРМОЙ GIT ОБЯЗАТЕЛЬНА
Чтобы получить автоматические комментарии к запросам pull/merge, интегрируйте ваш удаленный проект с
Git-платформой.Тестирование новой функциональности должно быть частью любого обзора кода. Но необходимость собирать приложение локально добавляет ненужные трудности, что часто приводит к тому, что разработчики вообще пропускают тестирование функциональности на своем устройстве. Но что, если бы каждый запрос на сборку содержал ссылку на сборку, которая автоматически запускала бы приложение на устройстве, выбранном в приложении Tuist macOS?
Как только ваш проект Tuist будет связан с вашей Git-платформой, например GitHub, добавьте tuist share MyApp в ваш рабочий процесс CI. После этого Tuist будет публиковать ссылку на предварительный просмотр непосредственно в ваших запросах на вытягивание: 
Уведомления об обновлениях в приложении
С помощью Tuist SDK ваше приложение может обнаружить, когда доступна новая предварительная версия, и уведомить об этом пользователей. Это полезно для того, чтобы держать тестировщиков на последней сборке.
SDK проверяет наличие обновлений в пределах одной дорожки превью. Когда вы делитесь превью с явным треком с помощью --track, SDK будет искать обновления на этом треке. Если трек не указан, в качестве трека используется ветка git - таким образом, превью, созданное из ветки main, будет уведомлять только о новых превью, также созданных из main.
Установка
Добавьте Tuist SDK в качестве зависимости от пакета Swift:
swift
.package(url: "https://github.com/tuist/sdk", .upToNextMajor(from: "0.1.0"))Мониторинг обновлений
Используйте monitorPreviewUpdates, чтобы периодически проверять наличие новых версий превью:
swift
import TuistSDK
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.task {
TuistSDK(
fullHandle: "myorg/myapp",
apiKey: "your-api-key"
)
.monitorPreviewUpdates()
}
}
}
}Одиночная проверка обновлений
Для проверки обновлений вручную:
swift
let sdk = TuistSDK(
fullHandle: "myorg/myapp",
apiKey: "your-api-key"
)
if let preview = try await sdk.checkForUpdate() {
print("New version available: \(preview.version ?? "unknown")")
}Остановка мониторинга обновлений
monitorPreviewUpdates возвращает задачу, которую можно отменить:
swift
let task = sdk.monitorPreviewUpdates { preview in
// Handle update
}
// Later, to stop monitoring:
task.cancel()INFO
Проверка обновлений автоматически отключается на симуляторах и в сборках App Store.
Значок README
Чтобы сделать предварительные версии Tuist более заметными в вашем репозитории, вы можете добавить в файл README значок, указывающий на последнюю предварительную версию Tuist:
Чтобы добавить бейдж в ваш README, используйте следующую разметку и замените дескрипторы аккаунта и проекта на свои собственные:
[](https://tuist.dev/{account-handle}/{project-handle}/previews/latest)Если ваш проект содержит несколько приложений с разными идентификаторами пакетов, вы можете указать, на какой предварительный просмотр приложения следует ссылаться, добавив параметр запроса bundle-id:
[](https://tuist.dev/{account-handle}/{project-handle}/previews/latest?bundle-id=com.example.app)Автоматизации
Вы можете использовать флаг --json, чтобы получить вывод в формате JSON от команды tuist share:
tuist share --jsonВывод JSON полезен для создания пользовательских автоматизаций, таких как отправка сообщения в Slack с помощью вашего CI-провайдера. JSON содержит ключ url с полной ссылкой на превью и ключ qrCodeURL с URL-адресом изображения QR-кода, чтобы упростить загрузку превью с реального устройства. Пример вывода JSON приведен ниже:
json
{
"id": 1234567890,
"url": "https://cloud.tuist.io/preview/1234567890",
"qrCodeURL": "https://cloud.tuist.io/preview/1234567890/qr-code.svg"
}

