For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主要導覽
Codex

Codex use case

開發 macOS 應用程式

使用 Codex 建立原生 Mac 應用程式的初始架構,並透過 SwiftUI 進行建置與偵錯。

Difficulty 進階
Time horizon 1 小時

使用 Codex 建置 macOS SwiftUI 應用程式、串接以 shell 為優先的建置與執行迴圈,並隨著應用程式逐步成熟,加入桌面原生的場景與視窗、AppKit 互通功能,以及簽署工作流程。

最適合

  • 適合希望 Codex 建立桌面原生應用程式外殼與可重複執行之建置指令碼的全新 macOS SwiftUI 應用程式
  • 適合需要 Codex 處理視窗、選單、側邊欄、設定、AppKit 互通性或簽署問題的既有 Mac 應用程式
  • 適合希望 macOS 開發仍以 shell 為優先,同時遵循原生桌面 UX 慣例的團隊

Contents

    ← 所有使用案例

    開發 macOS 應用程式

    使用 Codex 建立原生 Mac 應用程式的初始架構,並透過 SwiftUI 進行建置與偵錯。

    使用 Codex 建置 macOS SwiftUI 應用程式、串接以 shell 為優先的建置與執行迴圈,並隨著應用程式逐步成熟,加入桌面原生的場景與視窗、AppKit 互通功能,以及簽署工作流程。

    進階
    1 小時

    使用 Codex 建置 macOS SwiftUI 應用程式、串接以 shell 為優先的建置與執行迴圈,並隨著應用程式逐步成熟,加入桌面原生的場景與視窗、AppKit 互通功能,以及簽署工作流程。

    進階
    1 小時

    最適合

    • 適合希望 Codex 建立桌面原生應用程式外殼與可重複執行之建置指令碼的全新 macOS SwiftUI 應用程式
    • 適合需要 Codex 處理視窗、選單、側邊欄、設定、AppKit 互通性或簽署問題的既有 Mac 應用程式
    • 適合希望 macOS 開發仍以 shell 為優先,同時遵循原生桌面 UX 慣例的團隊

    技能與外掛程式

    • 以 shell 優先的工作流程建置及偵錯 macOS 應用程式、設計桌面原生的 SwiftUI 場景與視窗、在必要時橋接至 AppKit,並準備簽署與公證流程。
    Skill Why use it
    Build macOS Apps 以 shell 優先的工作流程建置及偵錯 macOS 應用程式、設計桌面原生的 SwiftUI 場景與視窗、在必要時橋接至 AppKit,並準備簽署與公證流程。

    起始提示詞

    使用 Build macOS Apps 外掛程式,為入門版 macOS SwiftUI 應用程式建立初始架構,並新增專案內的 `script/build_and_run.sh` 進入點,讓我可以將它串接至 `Run` 動作。 限制條件: - 維持以 shell 為優先。對 Xcode 專案優先使用 `xcodebuild`,對以套件為核心的應用程式則使用 `swift build`。 - 明確建模 Mac 場景,以主視窗為基礎;僅在符合產品需求時,才加入 `Settings`、`MenuBarExtra` 或工具視窗。 - 優先採用桌面原生的側邊欄、工具列、選單、鍵盤快速鍵與系統材質,而非 iOS 風格的推送導覽。 - 僅將 AppKit 用於範圍有限的橋接層,而且只在 SwiftUI 無法俐落實現所需桌面行為時使用。 - 每項變更都應維持一個小型驗證迴圈,並確切告訴我你執行了哪些建置、啟動或日誌指令。 交付內容: - 應用程式初始架構或要求的 Mac 功能範圍 - 可重複使用的建置與執行指令碼 - 你執行的最精簡驗證步驟 - 你建議進行的任何桌面平台專屬後續工作
    使用 Build macOS Apps 外掛程式,為入門版 macOS SwiftUI 應用程式建立初始架構,並新增專案內的 `script/build_and_run.sh` 進入點,讓我可以將它串接至 `Run` 動作。 限制條件: - 維持以 shell 為優先。對 Xcode 專案優先使用 `xcodebuild`,對以套件為核心的應用程式則使用 `swift build`。 - 明確建模 Mac 場景,以主視窗為基礎;僅在符合產品需求時,才加入 `Settings`、`MenuBarExtra` 或工具視窗。 - 優先採用桌面原生的側邊欄、工具列、選單、鍵盤快速鍵與系統材質,而非 iOS 風格的推送導覽。 - 僅將 AppKit 用於範圍有限的橋接層,而且只在 SwiftUI 無法俐落實現所需桌面行為時使用。 - 每項變更都應維持一個小型驗證迴圈,並確切告訴我你執行了哪些建置、啟動或日誌指令。 交付內容: - 應用程式初始架構或要求的 Mac 功能範圍 - 可重複使用的建置與執行指令碼 - 你執行的最精簡驗證步驟 - 你建議進行的任何桌面平台專屬後續工作

    建立應用程式初始架構與建置迴圈

    對於新的 Mac 應用程式,先請 Codex 選擇正確的場景模型: WindowGroupWindowSettingsMenuBarExtraDocumentGroup。這能讓應用程式從第一次實作起就符合桌面原生體驗,而不是從 ContentView 這類 iOS 風格的檢視逐步擴充而成。

    讓執行迴圈維持以 shell 為優先。Xcode 專案請使用 xcodebuild。以套件為核心的應用程式則使用 swift build,並搭配專案內的 script/build_and_run.sh 包裝指令碼,以停止舊的處理程序、建置應用程式、啟動新的建置產出物,並可選擇提供日誌或遙測資料。

    如果純 SwiftPM 應用程式是 GUI 應用程式,請將它封裝成 .app 並以此啟動,而不要直接執行原始可執行檔。這可避免在本機驗證時發生 Dock 不顯示、無法啟用或套件識別資訊缺失等問題。

    善用技能

    當工作內容變得更偏重桌面平台時,請加入 Build macOS Apps 外掛程式。它涵蓋以 shell 為優先的建置與偵錯迴圈、SwiftPM 應用程式封裝、原生 SwiftUI 場景與視窗模式、AppKit 互通性、統一日誌記錄、測試問題分類,以及簽署與公證工作流程。

    若要進一步瞭解如何安裝及使用外掛程式與技能,請參閱 外掛程式文件技能文件

    建置桌面原生 UI

    優先採用 Mac 慣例,而非 iOS 導覽模式。側邊欄與詳細資料配置請使用 NavigationSplitView、偏好設定請使用明確定義的 Settings 場景、易於發現的操作請使用工具列與指令,輕量且隨時可用的工具則使用選單列附加項目。

    優先使用系統材質、語意色彩與標準控制項。只有在產品需要獨特的桌面介面時,才加入自訂視窗樣式、拖曳區域或 Liquid Glass 介面。

    如果 SwiftUI 幾乎能滿足需求但仍有不足,請加入範圍盡可能小的 AppKit 橋接層。適合這麼做的場景包括開啟/儲存面板、第一回應者控制、選單驗證、拖放邊界處理,以及為單一特殊控制項包裝 NSView

    偵錯、測試並準備發布

    若要觀察執行階段行為,請 Codex 針對視窗開啟、側邊欄選取、選單指令或背景同步加入幾個 Logger 事件,然後在應用程式啟動後使用 log stream 驗證這些事件。

    對於失敗的測試,讓 Codex 先執行範圍最小但足以診斷問題的 xcodebuild testswift test,再判斷問題屬於編譯問題、斷言失敗、當機、偶發性失敗,或環境/設定問題。

    當工作從本機反覆開發轉向發佈時,請 Codex 同時準備 Xcode 手動封存流程,以及以指令碼執行的封存與公證流程,讓發布作業可重複進行。請它使用 codesignplutil 檢查應用程式套件、權利設定和強化執行階段;如果也想讓上傳作業留在終端中,則使用 App Store Connect CLI

    提示詞範例

    使用 Build macOS Apps 外掛程式,將這項應用程式功能建置成原生 macOS SwiftUI 版本。 限制條件: - 使用桌面原生的場景結構,包含主視窗、設定,並在適當位置加入 toolbar/command 動作。 - 如果此功能適合使用常駐可見的結構,請優先採用 sidebar/detail 配置,而非 iOS 風格的推送導覽。 - 僅加入極小範圍的 AppKit 橋接層,而且只限於 SwiftUI 無法俐落實現的特定桌面行為。 - 建立或更新 `script/build_and_run.sh`,讓 build/run 迴圈維持以 shell 為優先。 - 告訴我你使用了哪些建置、啟動、測試與日誌指令。 交付這部分功能,使用最小且相關的建置或測試迴圈進行驗證,並摘要說明發布前仍需進行的簽署或封裝後續工作。

    實用提示

    明確定義各個場景

    將主視窗、設定視窗、工具視窗與選單列附加項目分別建模為獨立的場景根節點,而不要把整個應用程式都藏在單一大型檢視中。

    多善用系統介面元件

    建立自訂側邊欄、工具列或材質之前,先確認標準 SwiftUI 場景與視窗 API 是否已能提供所需的 Mac 行為。

    將 AppKit 限定在必要的邊界

    使用 NSViewRepresentableNSViewControllerRepresentable 或專用的 NSWindow 輔助工具來補足單一欠缺的桌面功能,但仍應以 SwiftUI 作為選取項目和應用程式狀態的唯一依據。

    簽署與公證應和本機建置分開驗證

    本機成功啟動不代表應用程式已完成簽署或已可送交公證。保留手動 Xcode 封存流程以進行單次發布檢查,並加入指令碼式封存與公證流程以支援可重複的發佈;當任務目標是發布,而不只是本機反覆開發時,請執行 codesignplutil 檢查。

    Tech stack

    Need

    UI 框架

    Default options

    SwiftUI

    Why it's needed

    適合用來建構視窗、側邊欄、工具列、設定,以及由場景驅動之 Mac 應用程式架構的優良預設選擇。

    Need

    AppKit 橋接層

    Default options

    AppKit

    Why it's needed

    當 SwiftUI 無法完整實現所需的桌面行為時,請使用範圍精簡的 NSViewRepresentableNSViewControllerRepresentableNSWindow 橋接層。

    Need

    建置與封裝

    Default options

    xcodebuildswift build App Store Connect CLI

    Why it's needed

    將本機建置、手動封存、以指令碼進行的公證,以及上傳至 App Store 等作業,維持在可重複執行且以終端為優先的迴圈中。

    Need Default options Why it's needed
    UI 框架 SwiftUI 適合用來建構視窗、側邊欄、工具列、設定,以及由場景驅動之 Mac 應用程式架構的優良預設選擇。
    AppKit 橋接層 AppKit 當 SwiftUI 無法完整實現所需的桌面行為時,請使用範圍精簡的 NSViewRepresentable NSViewControllerRepresentable NSWindow 橋接層。
    建置與封裝 xcodebuild swift build App Store Connect CLI 將本機建置、手動封存、以指令碼進行的公證,以及上傳至 App Store 等作業,維持在可重複執行且以終端為優先的迴圈中。

    相關使用案例