미리 보기
앱을 빌드할 때 다른 사람들과 공유하여 피드백을 받고 싶을 수 있습니다. 일반적으로 팀은 앱을 빌드하고 서명하여 Apple의 TestFlight와 같은 플랫폼에 푸시하는 방식으로 이 작업을 수행합니다. 하지만 이 과정은 번거롭고 느릴 수 있으며, 특히 동료나 친구로부터 빠른 피드백을 받고자 할 때는 더욱 그렇습니다.
이 과정을 더욱 간소화하기 위해 Tuist는 앱의 미리보기를 생성하고 누구와도 공유할 수 있는 방법을 제공합니다.
디바이스용으로 빌드할 때 앱이 올바르게 서명되었는지 확인하는 것은 현재 사용자의 책임입니다. 향후 이 과정을 간소화할 계획입니다.
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
이 명령은 시뮬레이터나 실제 기기에서 앱을 실행할 수 있도록 다른 사람과 공유할 수 있는 링크를 생성합니다. 아래 명령을 실행하기만 하면 됩니다:
tuist run {url}
tuist run --device "My iPhone" {url} # Run the app on a specific device
.ipa 파일을 공유할 때 미리보기 링크를 사용하여 모바일 장치에서 직접 앱을 다운로드할 수 있습니다. .ipa 미리 보기 링크는
기본적으로 공개 입니다. 향후에는 링크를 비공개로 설정할 수 있는 옵션이 제공되므로 링크를 받은 사람이 앱을 다운로드하려면 자신의 Tuist
계정으로 인증해야 합니다.
tuist run 을 사용하면 최신, 브랜치 이름 또는 특정 커밋 해시와 같은 지정자를 기반으로 최신 미리보기를 실행할 수도 있습니다:
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
대부분의 CI 제공업체가 노출하는 CI 실행 번호를 활용하여 CFBundleVersion (빌드 버전)이 고유한지 확인하세요. 예를 들어,
GitHub Actions에서 CFBundleVersion 을 ${{ github.run_number }}
변수로 설정할 수 있습니다.
동일한 바이너리(빌드)와 동일한 CFBundleVersion 으로 미리 보기를 업로드하면 실패합니다.
트랙#
트랙을 사용하면 미리 보기를 이름 지정된 그룹으로 구성할 수 있습니다. 예를 들어 내부 테스터를 위한 베타 트랙과 자동화된 빌드를 위한
야간 트랙이 있을 수 있습니다. 트랙은 느리게 생성되므로 공유할 때 트랙 이름을 지정하기만 하면 트랙이 없는 경우 자동으로 생성됩니다.
특정 트랙에서 미리보기를 공유하려면 --track 옵션을 사용하세요:
tuist share App --track beta
tuist share App --track nightly
이 기능은 다음과 같은 경우에 유용합니다:
- 미리 보기 구성하기: 목적별 그룹 미리 보기(예:
베타,야간,내부) - 인앱 업데이트: 튜이스트 SDK는 트랙을 사용하여 사용자에게 알릴 업데이트를 결정합니다.
- 필터링: 튜이스트 대시보드에서 트랙별 미리보기를 쉽게 찾고 관리할 수 있습니다.
프로젝트가 속한 조직에 대한 액세스 권한이 있는 사람만 미리 보기에 액세스할 수 있습니다. 만료되는 링크에 대한 지원도 추가할 계획입니다.
Tuist macOS 앱#
튜이스트 프리뷰를 더욱 쉽게 실행할 수 있도록, 튜이스트는 튜이스트 macOS 메뉴바 앱을 개발했습니다. 튜이스트 CLI를 통해 미리 보기를
실행하는 대신, macOS 앱을 다운로드할 수 있습니다. brew install --cask tuist/tuist/tuist 을 실행하여 앱을 설치할 수도 있습니다.
이제 미리보기 페이지에서 '실행'을 클릭하면 현재 선택한 기기에서 macOS 앱이 자동으로 실행됩니다.
Xcode가 로컬에 설치되어 있어야 하며 macOS 14 이상을 사용 중이어야 합니다.
튜이스트 iOS 앱#
macOS 앱과 마찬가지로, 튜이스트 iOS 앱은 미리보기에 액세스하고 실행하는 과정을 간소화합니다.
요청 댓글 풀/병합#
새로운 기능을 테스트하는 것은 모든 코드 리뷰의 일부가 되어야 합니다. 그러나 앱을 로컬에서 빌드해야 하는 경우 불필요한 마찰이 발생하여 개발자가 기기에서 기능 테스트를 아예 건너뛰는 경우가 종종 있습니다. 하지만 각 풀 리퀘스트에 Tuist macOS 앱에서 선택한 기기에서 앱을 자동으로 실행할 수 있는 빌드 링크가 포함되어 있다면 어떨까요?
튜이스트 프로젝트가 GitHub와 같은 Git 플랫폼에 연결되면,
tuist share MyApp을 CI 워크플로에
추가합니다. 그러면 튜이스트가 풀 리퀘스트에 바로 미리보기 링크를 게시합니다: 
인앱 업데이트 알림#
Tuist SDK](https://github.com/tuist/sdk)를 사용하면 앱에서 최신 프리뷰 버전을 사용할 수 있는 시기를 감지하여 사용자에게 알릴 수 있습니다. 이는 테스터를 최신 빌드로 유지하는 데 유용합니다.
SDK는 동일한 미리 보기 트랙 내에서 업데이트를 확인합니다. --track 을 사용하여 프리뷰를 명시적 트랙과 공유하면 SDK는
해당 트랙에서 업데이트를 찾습니다. 트랙을 지정하지 않으면 git 브랜치가 트랙으로 사용되므로 메인 브랜치에서 빌드된 프리뷰는 메인 에서
빌드된 최신 프리뷰에 대해서만 알림을 보냅니다.
설치#
스위프트 패키지 종속성으로 Tuist SDK를 추가합니다:
.package(url: "https://github.com/tuist/sdk", .upToNextMajor(from: "0.1.0"))
업데이트 모니터링#
monitorPreviewUpdates 를 사용하여 새 미리 보기 버전을 주기적으로 확인하세요:
import TuistSDK
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.task {
TuistSDK(
fullHandle: "myorg/myapp",
apiKey: "your-api-key"
)
.monitorPreviewUpdates()
}
}
}
}
단일 업데이트 확인#
수동 업데이트 확인을 위해:
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 는 취소할 수 있는 작업 을 반환합니다:
let task = sdk.monitorPreviewUpdates { preview in
// Handle update
}
// Later, to stop monitoring:
task.cancel()
시뮬레이터 및 App Store 빌드에서는 업데이트 확인이 자동으로 비활성화됩니다.
README 배지#
저장소에서 튜이스트 미리 보기를 더 잘 보이게 하려면 README 파일에 최신 튜이스트 미리 보기를 가리키는 배지를 추가하면 됩니다:
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 플래그를 사용하여 tuist share 명령에서 JSON 출력을 가져올 수 있습니다:
tuist share --json
JSON 출력은 CI 제공업체를 사용하여 Slack 메시지를 게시하는 등의 사용자 지정 자동화를 만드는 데 유용합니다. JSON에는 전체 미리
보기 링크가 포함된 url 키와 실제 장치에서 미리 보기를 쉽게 다운로드할 수 있도록 QR 코드 이미지의 URL이 포함된
qrCodeURL 키가 포함되어 있습니다. JSON 출력의 예는 아래와 같습니다:
{
"id": 1234567890,
"url": "https://cloud.tuist.io/preview/1234567890",
"qrCodeURL": "https://cloud.tuist.io/preview/1234567890/qr-code.svg"
}