官方 Kotlin Multiplatform 快速入門以 Android 與 iOS 兩個平台目標示範專案,但 iOS 建置需要 macOS 主機與 Xcode;官方文件列出的建置邊界決定了 Windows 能做的部分。
症狀:你只有 Windows,能寫共享 Kotlin 程式碼,卻不能在這台主機完成官方 iOS 建置或啟動 iOS Simulator。
最快解法:先用 Windows 練共享程式碼和 Android;課程要求 iOS 成果時,再安排可用的 Mac 與 Xcode 驗收。
適合閱讀的情況:你正在學 Kotlin 或 Android,想知道手上的 KMP 課程專案能否繼續。
如果共享模組已經寫好,卻卡在 iOS 建置、模擬器或設備選擇,下面的分流也適用。
如果課程只要求 Android 作業,暫時不必為了 KMP 三個字就急著換電腦。
先按課程交付物選擇環境
Kotlin Multiplatform(KMP)讓不同平台的專案共用部分 Kotlin 程式碼,但不代表每個平台都能在同一台電腦上完成建置。先確認老師要你交的是程式碼、Android 執行結果,還是 iOS 的建置與執行證明,再決定是否需要 Mac。
| 選項 | 適合完成的工作 | 需要留意的邊界 | 何時選 |
|---|---|---|---|
| 只有 Windows | 編輯共享 Kotlin 程式碼、學 Android、提交專案 | 不能在 Windows 主機完成官方 iOS 建置與 iOS Simulator 驗收 | 課程目前只要求 Kotlin 基礎或 Android |
| 學校或自有 Mac | 開啟同一份專案、用 Xcode 建置及驗收 iOS | 須確認設備可用、Xcode 符合課程要求,並遵守學校設備規範 | 作業要求 iOS 執行結果,而且你能使用 Mac |
| 短期遠端 Mac | 在遠端 macOS 環境接續專案並檢查 iOS 目標 | 須先確認連線方式、檔案接續及實際建置條件 | 沒有可借的 Mac,但課程確實要求 iOS 成果 |
Kotlin Multiplatform 可以在 Windows 上開發 iOS 應用嗎?可以在 Windows 編輯共用程式碼、學習專案結構,但這不等於能在 Windows 主機建置 iOS 應用。把「寫出共享程式碼」和「完成 iOS 平台交付」當成兩個不同的驗收項目,才不會做到最後才發現缺少建置環境。
只有 Windows 時,先把共享程式碼和 Android 練紮實
KMP 專案會把共用部分和平台相關部分分開。你可以把共享模組想成小組報告裡共用的研究內容;Android 或 iOS 平台程式碼則像各自要完成的實驗紀錄。同一份報告可以有共用內容,但不同實驗仍需要對應設備。
Kotlin 官方專案設定文件說明了 commonMain、androidMain、iosMain 等 source set 的用途。這些名稱分別對應共用程式碼及平台專屬程式碼,並不表示 Windows 可以替 iOS 完成平台建置。官方模組設定說明可用來核對你目前修改的是哪一部分。
Windows 階段可以先做以下練習:
- 在共享模組加入與平台無關的資料處理或簡單邏輯。
- 在 Android 目標執行課程要求的功能,確認共用程式碼能配合 Android 專案使用。
- 查看專案目錄,分辨共享檔案與 Android、iOS 專屬檔案;不要因為看見
iosMain就認為已能建置 iOS。 - 把課程要求、專案修改和目前錯誤整理成紀錄,方便之後在 Mac 上接續。
- 以官方支援的 IDE 和工具版本為準;Android Studio 的安裝需求可先對照官方安裝文件。
沒有 Mac 能不能先學 Kotlin Multiplatform?可以。先學 Kotlin 語法、共享程式碼概念及 Android 目標,不會因為沒有 Mac 就全部停擺。若課程目前只要 Android 執行結果,你可以繼續使用現有電腦;但若評分項目寫明 iOS 建置、Xcode 專案或模擬器畫面,就要另安排 Mac 驗收。
初學者常見的誤判,是把 IDE 能開啟專案、編輯檔案,當成所有目標都能在本機建置。官方的第一個 KMP 專案指南和快速入門可協助你核對專案平台與工作流程;實際支援內容仍以官方文件當下的版本說明為準。
課程要求 iOS 結果時,依序安排 Mac 驗收
如果作業要求 iOS 應用能啟動,或要提交模擬器截圖,Windows 上的程式碼編輯只能算前置工作。Kotlin 官方快速入門要求以 macOS 主機進行 iOS 建置,並透過 Xcode 啟動 iOS Simulator;Apple 也說明了如何在模擬器或實體裝置上執行應用。
把以下流程當成課程交接的驗收路線:
- 先讀清楚交付要求。確認作業要的是共享程式碼、iOS 專案可建置,還是模擬器實際執行結果。若老師只收程式碼,不要自行把模擬器測試當成必交項目。
- 核對課程指定的工具。詢問老師或查看課程說明中的 Xcode 版本、最低 macOS 要求和專案模板,再對照Apple 的 Xcode 系統需求。不要先假設任何 Mac 都符合課程要求。
- 在 Windows 整理專案狀態。完成目前能做的共享程式碼與 Android 練習,確認修改已儲存,並記下尚未處理的 iOS 問題。
- 用版本控制交接同一份專案。在自己有權使用的版本控制服務提交變更,再於獲授權的 Mac 取得同一份專案。這比用訊息軟體散落傳送多份壓縮檔更容易辨認哪份是最新版本。不要把帳號密碼或存取憑證寫進程式碼,也不要繞過學校的設備管理規定。
- 在 Mac 上檢查工具與 iOS 目標。確認 Xcode 已安裝並符合課程要求,再依官方專案流程開啟、建置 KMP 專案。Windows IDE 編輯檔案不會自動替你遠端驅動 Mac 建置。
- 啟動模擬器並留存驗收結果。以課程指定的 iOS Simulator 或設備執行應用,核對啟動狀態、畫面與必要功能。若遇到錯誤,記下建置訊息和工具版本,先分清楚是專案問題還是環境條件不符。
提醒:模擬器能否啟動,取決於 Mac 上的 Xcode、macOS 與專案設定是否符合要求。只在 Windows 編輯到一半,或看到 iOS 專案資料夾存在,都不能當作 iOS 驗收完成。
借不到 Mac 時,按阻塞點決定下一步
如果學校有開放使用的 Mac,先問清楚借用時段、是否允許安裝或使用課程所需工具,以及能否將專案帶入設備。這些條件比「有一台 Mac」更直接影響你能否完成作業。Windows 與學校 Mac 之間建議以同一個版本控制專案交接,避免手動複製後不確定哪一份才是最新版。
若沒有可借用的 Mac,依交付要求分流:
- 只交 Kotlin 或 Android 作業:繼續使用 Windows,先完成共享程式碼與 Android 驗收。等課程真的加入 iOS 目標,再安排 Mac。
- 必須交 iOS 建置或模擬器結果:先確認課程允許的設備與工具,再評估自有 Mac、學校設備或短期遠端 Mac。不要把 Windows 編輯環境當成 iOS 建置的替代品。
- 尚未確認老師要求:先取得明確的交付清單,再決定設備。否則可能付出時間與費用,卻準備了課程並不需要的測試。
遠端 Mac 可以列入短期方案,但下決定前要先確認三件事:你能否按規定連線、是否能把同一份專案安全接續到 Mac,以及環境是否能實際完成課程指定的 Xcode 建置和模擬器驗收。先確認可用環境與課程限制,不要只憑「可以遠端操作」就假設一定能交付。
若你在比較購買與短期使用,也可以先查看KVMNODE 的 Mac 方案資訊,並以實際可用的環境、接入方式及課程工具要求作判斷。需要從 Windows 接續專案時,先確認你使用的連線與檔案管理方式符合學校規定;不要分享憑證,也不要執行來源不明的腳本。
你的 Windows 電腦適合先學共享 Kotlin 和 Android;課程要求 iOS 驗收時,短期缺少 Mac 會帶來三個實際限制:不能在本機使用 Xcode 完成建置、不能直接啟動 iOS Simulator,也難以提交可重現的 iOS 執行結果。若目前只需要短期完成課程驗收,租用 KVMNODE 的遠端 Mac 可作為待評估的選項;租用前先核對工具要求、連線方式與專案接續流程。若你已確認作業必須在 Mac 上驗收,可從KVMNODE了解遠端 Mac 使用方式,再依課程交付物決定是否需要短期使用。