Vista previa
Cuando creas una aplicación, es posible que quieras compartirla con otros para obtener comentarios. Tradicionalmente, esto es algo que los equipos hacen creando, firmando y enviando sus aplicaciones a plataformas como TestFlight de Apple. Sin embargo, este proceso puede ser engorroso y lento, sobre todo cuando solo buscas la opinión rápida de un colega o un amigo.
Para agilizar este proceso, Tuist ofrece una forma de generar y compartir vistas previas de tus aplicaciones con cualquiera.
Actualmente, cuando se crea para un dispositivo, es responsabilidad del usuario asegurarse de que la aplicación está firmada correctamente. Tenemos previsto simplificarlo en el futuro.
::: grupo de códigos
tuist generate App
xcodebuild build -scheme App -workspace App.xcworkspace -configuration Debug -sdk iphonesimulator # Build the app for the simulator
xcodebuild build -scheme App -workspace App.xcworkspace -configuration Debug -destination 'generic/platform=iOS' # Build the app for the device
tuist share App
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
:::
El comando generará un enlace que puedes compartir con cualquiera para que ejecute la aplicación, ya sea en un simulador o en un dispositivo real. Todo lo que tendrán que hacer es ejecutar el siguiente comando:
tuist run {url}
tuist run --device "My iPhone" {url} # Run the app on a specific device
Al compartir un archivo .ipa, puedes descargar la aplicación directamente
desde el dispositivo móvil utilizando el enlace Vista previa. Los enlaces a las
vistas previas de .ipa son por defecto públicos. En el futuro, tendrás la
opción de hacerlos privados, de modo que el destinatario del enlace tenga que
autenticarse con su cuenta de Tuist para descargar la app.
tuist run también le permite ejecutar una última vista previa basada en un
especificador como latest, nombre de rama o un hash de confirmación
específico:
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
Asegúrate de que la CFBundleVersion (versión de compilación) es única
aprovechando un número de ejecución de CI que la mayoría de los proveedores de
CI exponen. Por ejemplo, en GitHub Actions, puede establecer CFBundleVersion
en la variable ${{ github.run_number }}.
Subir una vista previa con el mismo binario (build) y el mismo CFBundleVersion
fallará.
Pistas#
Las pistas te permiten organizar tus vistas previas en grupos con nombre. Por
ejemplo, puedes tener una pista beta para los probadores internos y una pista
nightly para las compilaciones automáticas. Los tracks se crean de forma
perezosa - simplemente especifica un nombre de track al compartir, y se creará
automáticamente si no existe.
Para compartir una vista previa en una pista específica, utilice la opción
--track:
tuist share App --track beta
tuist share App --track nightly
Esto es útil para:
- Organizar las previsualizaciones: Agrupar las vistas previas por finalidad
(por ejemplo,
beta,nocturna,interna) - Actualizaciones in-app: El SDK de Tuist utiliza pistas para determinar qué actualizaciones notificar a los usuarios.
- Filtrar: Encuentra y gestiona fácilmente previsualizaciones por pista en el panel de control de Tuist.
Sólo las personas con acceso a la organización a la que pertenece el proyecto pueden acceder a las vistas previas. Tenemos previsto añadir soporte para enlaces que caducan.
Aplicación Tuist para macOS#
Para facilitar aún más la ejecución de Tuist Previews, hemos desarrollado una
aplicación de Tuist para la barra de menús de macOS. En lugar de ejecutar las
previsualizaciones a través de la CLI de Tuist, puedes
descargar la aplicación para macOS. También puedes
instalar la aplicación ejecutando brew install --cask tuist/tuist/tuist.
Al hacer clic en "Ejecutar" en la página de vista previa, la aplicación macOS se iniciará automáticamente en el dispositivo seleccionado.
Necesitas tener Xcode instalado localmente y estar en macOS 14 o posterior.
Aplicación Tuist para iOS#
Al igual que la aplicación para macOS, las aplicaciones de Tuist para iOS agilizan el acceso y la ejecución de tus previsualizaciones.
Comentarios a las solicitudes de extracción/fusión#
Para obtener comentarios automáticos de pull/merge request, integra tu proyecto remoto con una plataforma Git.
Probar nuevas funcionalidades debería formar parte de cualquier revisión de código. Pero tener que compilar una aplicación localmente añade una fricción innecesaria, lo que a menudo lleva a los desarrolladores a no probar la funcionalidad en su dispositivo. Pero ¿y si cada pull request contuviera un enlace a la compilación que ejecutaría automáticamente la aplicación en un dispositivo seleccionado en la aplicación macOS de Tuist?
Una vez que tu proyecto Tuist esté conectado con tu plataforma Git como
GitHub, añade un tuist share MyApp a tu flujo de trabajo CI. Tuist publicará entonces
un enlace de Vista Previa directamente en tus pull requests: 
Notificaciones de actualizaciones en la aplicación#
El Tuist SDK permite a tu aplicación detectar cuándo hay disponible una versión preliminar más reciente y notificárselo a los usuarios. Esto es útil para mantener a los probadores en la última versión.
El SDK busca actualizaciones dentro de la misma pista de vista previa **** .
Cuando comparte una vista previa con una pista explícita usando --track, el
SDK buscará actualizaciones en esa pista. Si no se especifica ninguna pista, la
rama git se utiliza como pista - por lo que una vista previa construida desde la
rama main sólo notificará sobre vistas previas más recientes también
construidas desde main.
Instalación#
Añade Tuist SDK como dependencia del paquete Swift:
.package(url: "https://github.com/tuist/sdk", .upToNextMajor(from: "0.1.0"))
Seguimiento de las actualizaciones#
Utilice monitorPreviewUpdates para comprobar periódicamente si hay nuevas
versiones de previsualización:
import TuistSDK
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.task {
TuistSDK(
fullHandle: "myorg/myapp",
apiKey: "your-api-key"
)
.monitorPreviewUpdates()
}
}
}
}
Comprobación de actualización única#
Para la comprobación manual de actualizaciones:
let sdk = TuistSDK(
fullHandle: "myorg/myapp",
apiKey: "your-api-key"
)
if let preview = try await sdk.checkForUpdate() {
print("New version available: \(preview.version ?? "unknown")")
}
Detener la supervisión de actualizaciones#
monitorPreviewUpdates devuelve una tarea `` que puede ser cancelada:
let task = sdk.monitorPreviewUpdates { preview in
// Handle update
}
// Later, to stop monitoring:
task.cancel()
La comprobación de actualizaciones se desactiva automáticamente en los simuladores y en las versiones del App Store.
Insignia README#
Para que las Previsualizaciones de Tuist sean más visibles en tu repositorio,
puedes añadir una insignia a tu archivo README que apunte a la última
Previsualización de Tuist:
Para añadir la insignia a su README, utilice el siguiente markdown y sustituya
los identificadores de cuenta y proyecto por los suyos propios:
[](https://tuist.dev/{account-handle}/{project-handle}/previews/latest)
Si tu proyecto contiene varias aplicaciones con diferentes identificadores de
paquete, puedes especificar a qué vista previa de la aplicación enlazar
añadiendo un parámetro de consulta bundle-id:
[](https://tuist.dev/{account-handle}/{project-handle}/previews/latest?bundle-id=com.example.app)
Automatizaciones#
Puede utilizar la bandera --json para obtener una salida JSON del comando
tuist share:
tuist share --json
La salida JSON es útil para crear automatizaciones personalizadas, como publicar
un mensaje de Slack utilizando su proveedor de CI. El JSON contiene una clave
url con el enlace a la vista previa completa y una clave qrCodeURL con la
URL a la imagen del código QR para facilitar la descarga de vistas previas desde
un dispositivo real. A continuación se muestra un ejemplo de salida JSON:
{
"id": 1234567890,
"url": "https://cloud.tuist.io/preview/1234567890",
"qrCodeURL": "https://cloud.tuist.io/preview/1234567890/qr-code.svg"
}