생성된 Xcode 프로젝트
자동 생성된 스킴에는 tuist inspect build 포스트 액션이 자동으로 포함됩니다.
생성된 스킴에서 빌드 인사이트를 추적하지 않으려면 buildInsightsDisabled을 사용하여 비활성화하세요.
커스텀 스킴이 있는 생성된 프로젝트를 사용하는 경우, 포스트 액션을 직접 추가해야 합니다. Mise의 경우:
let project = Project(
name: "MyProject",
targets: [
// Your targets
],
schemes: [
.scheme(
name: "MyApp",
shared: true,
buildAction: .buildAction(
targets: ["MyApp"],
postActions: [
.executionAction(
title: "Inspect Build",
scriptText: """
$HOME/.local/bin/mise x -C $SRCROOT -- tuist inspect build
""",
target: "MyApp"
)
],
runPostActionsOnFailure: true
),
runAction: .runAction(configuration: "Debug")
)
]
)
Mise를 사용하지 않는 경우, Xcode 포스트 액션이 셸의 PATH을 상속하지 않기 때문에 스킴 환경에서 tuist을 사용할 수 있도록 해야 합니다. Homebrew 설치의 경우:
buildAction: .buildAction(
targets: ["MyApp"],
postActions: [
.executionAction(
title: "Inspect Build",
scriptText: """
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
tuist inspect build
""",
target: "MyApp"
)
],
runPostActionsOnFailure: true
)
CI에서의 빌드 인사이트#
CI에서 빌드 인사이트를 추적하려면 CI가 인증됨 상태인지 확인하세요.
Xcodebuild 기반 CI의 경우 다음을 수행해야 합니다:
xcodebuild액션을 호출할 때tuist xcodebuild을 사용하세요.xcodebuild명령에-resultBundlePath을 추가하세요.
-resultBundlePath이 없으면 필요한 활동 로그와 결과 번들이 생성되지 않으며 tuist inspect build이 빌드를 분석할 수 없습니다.
머신 메트릭#
빌드 인사이트에는 빌드 중에 캡처된 머신 수준의 성능 메트릭(CPU, 메모리, 네트워크 및 디스크 사용량)이 포함될 수 있습니다. 이를 활성화하려면 시스템 메트릭을 지속적으로 샘플링하는 경량 백그라운드 데몬을 설정하세요:
tuist setup insights
이는 백그라운드에서 메트릭을 샘플링하는 로컬 데몬을 실행합니다. 데이터는 tuist inspect build에 의해 자동으로 수집되어 빌드 보고서와 함께 업로드됩니다.
머신 메트릭도 캡처하려면 빌드 전에 CI 머신에서 tuist setup insights을 실행하세요.
머신 메트릭 수집을 중지하려면 다음을 실행하세요:
tuist teardown insights
이 명령은 데몬의 LaunchAgent를 언로드하고 plist를 제거하며 ~/.local/state에서 샘플링된 메트릭과 데몬 로그를 삭제하므로 백그라운드에서 실행되는 것이 남지 않습니다.
커스텀 메타데이터#
환경 변수를 사용하여 빌드에 메타데이터를 첨부하여 필터링을 개선할 수 있습니다.
환경 변수#
| 변수 | 형식 | 설명 |
|---|---|---|
TUIST_BUILD_TAGS | 쉼표로 구분 | 하나의 변수에 여러 태그. |
TUIST_BUILD_VALUE_* | 단일 값 | 접미사가 키인 키-값 쌍. |
예시#
빌드를 호출하기 전에 CI 또는 셸에서 이러한 값을 설정하세요:
export TUIST_BUILD_TAGS="nightly,ios-team,release-candidate"
export TUIST_BUILD_VALUE_TICKET="PROJ-1234"
export TUIST_BUILD_VALUE_PR_URL="https://github.com/myorg/myrepo/pull/123"