server/priv/docs/zh_Hant/guides/features/previews.md
[!WARNING] Requirements
- A<LocalizedLink href="/guides/server/accounts-and-projects">Tuist帳號與專案</LocalizedLink>
在建立應用程式時,您可能想要與他人分享以獲得回饋。傳統上,團隊會透過建立、簽署並將應用程式推送至 Apple 的 TestFlight 等平台來達成這個目的。然而,這個過程可能既麻煩又緩慢,尤其是當您只想從同事或朋友那裡快速獲得回饋時。
為了讓這個過程更為精簡,Tuist 提供了一種方法來產生您的應用程式並與任何人分享預覽。
[!WARNING] Device Builds Need To Be Signed
為裝置建置時,目前由您負責確保應用程式已正確簽署。我們計劃在未來簡化這項工作。
::: code-group
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 也可讓您根據指定符號執行最新預覽,例如latest 、分支名稱或特定的提交雜湊:
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
[!WARNING] Unique Build Numbers In Ci
確保
CFBundleVersion(建置版本) 是唯一的,方法是利用大多數 CI 供應商揭露的 CI run 編號。例如,在 GitHub Actions 中,您可以將CFBundleVersion設定為 <code v-pre>${{ github.run_number }}</code> 變數。上傳具有相同二進位 (build) 和相同
CFBundleVersion的預覽將會失敗。
軌道可讓您將預覽組織為已命名的群組。例如,您可以為內部測試人員設定beta 軌道,為自動化建置設定nightly 軌道。軌道可輕鬆建立 -
只需在分享時指定軌道名稱,如果不存在,就會自動建立。
若要在特定音軌上分享預覽,請使用--track 選項:
tuist share App --track beta
tuist share App --track nightly
這對以下方面很有用
beta,nightly,internal)[!WARNING] Previews' Visibility
只有擁有專案所屬組織存取權限的人才能存取預覽。我們計劃新增對過期連結的支援。
<h1>Tuist</h1>
<a href="https://tuist.dev/download" style="text-decoration: none;">Download</a>
為了讓執行 Tuist 預覽更加容易,我們開發了一個 Tuist macOS 功能表應用程式。與其透過 Tuist CLI 執行預覽,您可以下載 macOS 應用程式。您也可以執行 brew install --cask tuist/tuist/tuist 來安裝應用程式。
當您現在點選預覽頁面中的「執行」時,macOS 應用程式會自動在您目前選取的裝置上啟動。
[!WARNING] Requirements
您需要在本機安裝 Xcode,並使用 macOS 14 或更新版本。
<h1 style="padding-top: 2px;">Tuist</h1>
<a href="https://apps.apple.com/us/app/tuist/id6748460335" target="_blank" style="padding-top: 10px;">
</a>
與 macOS 應用程式類似,Tuist iOS 應用程式可簡化存取和執行預覽的程序。
[!WARNING] Integration With Git Platform Required
若要取得自動的 pull/merge 請求註解,請將您的 <LocalizedLink href="/guides/server/accounts-and-projects">Tuist 專案</LocalizedLink>與 <LocalizedLink href="/guides/server/authentication">Git 平台</LocalizedLink>整合。
測試新功能應該是任何程式碼檢閱的一部分。但必須在本機建立應用程式會增加不必要的摩擦,通常會導致開發人員完全跳過在裝置上測試功能。但是如果每個拉取請求都包含一個連結,可以讓您在 Tuist macOS 應用程式中選擇的裝置上自動執行應用程式的建立呢?
一旦您的 Tuist 專案與 GitHub 等 Git 平台連線,請在 CI 工作流程中加入 <LocalizedLink href="/cli/share">tuist share MyApp</LocalizedLink>。之後,Tuist 會直接在您的拉取請求中發佈預覽連結:
Tuist SDK 可讓您的應用程式偵測更新的預覽版本,並通知使用者。這對於讓測試人員使用最新版本非常有用。
SDK 會檢查同一預覽軌 內的更新。當您使用--track 與明確的軌道分享預覽時,SDK 會在該軌道上尋找更新。如果沒有指定軌道,則會使用 git
分支作為軌道 - 因此從main 分支建立的預覽,只會通知同樣從main 建立的更新預覽。
新增 Tuist SDK 為 Swift 套件相依性:
.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()
[!NOTE] 在模擬器和 App Store 版本上,更新檢查會自動停用。
為了讓 Tuist 預覽在您的儲存庫中更顯眼,您可以在README 檔案中加入徽章,指向最新的 Tuist 預覽:
若要在README 中加入徽章,請使用下列 markdown,並將帳號和專案句柄換成您自己的:
[](https://tuist.dev/{account-handle}/{project-handle}/previews/latest)
如果您的專案包含多個具有不同 bundle 識別碼的應用程式,您可以透過新增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
key,內含完整的預覽連結,以及qrCodeURL key,內含 QR 碼影像的 URL,以便更輕鬆地從實體裝置下載預覽。以下是 JSON 輸出的範例:
{
"id": 1234567890,
"url": "https://cloud.tuist.io/preview/1234567890",
"qrCodeURL": "https://cloud.tuist.io/preview/1234567890/qr-code.svg"
}