Mengapa coding agent iOS butuh Mac sungguhan
Agen bisa menulis Swift di mana saja. Tetapi agen hanya bisa build, menjalankan, dan melihat aplikasi iOS di Mac. Celah itulah alasan pekerjaan iOS butuh Mac di dalam loop. Itu juga alasan agen dengan Mac jadi jauh lebih baik. Agen bisa memeriksa hasil kerjanya sendiri. Halaman ini mendaftar apa saja yang hanya ada di macOS. Lalu ada loop yang kami siapkan untuk agen di mesin kami.
Yang hanya bisa terjadi di macOS
- Build aplikasi. xcodebuild dan Xcode hanya ada di macOS. Mesin Linux bisa mengompilasi Swift package dan Swift server-side. Mesin Linux tidak bisa menghasilkan aplikasi iOS.
- Menjalankannya. iOS Simulator adalah bagian dari Xcode. Tanpa simulator, aplikasi yang baru diubah agen tidak bisa dijalankan.
- Melihatnya. Screenshot aplikasi yang berjalan adalah cara agen tahu layout-nya rusak. Itu butuh simulator.
- UI test. XCUITest mengendalikan aplikasi di simulator atau perangkat. Hanya di macOS.
- Signing dan upload. Code signing, provisioning profile, dan upload ke App Store Connect semuanya lewat tool Apple di macOS.
Jadi agen di Linux bisa mengedit file Swift Anda dan menebak. Agen di Mac bisa mengedit, build, menjalankan, melihat, dan memperbaiki. Yang kedua itulah yang berguna.
Loop-nya, langkah demi langkah
Siapkan ini sekali, lalu taruh perintahnya di file instruksi agen agar dipakai tanpa perlu disuruh setiap kali. Pertama, cari simulator dan nyalakan.
xcrun simctl list devices available xcrun simctl boot "iPhone 16"
Build untuk simulator itu. Ganti scheme dengan milik Anda.
xcodebuild -scheme MyApp \ -destination 'platform=iOS Simulator,name=iPhone 16' \ -derivedDataPath build \ build
Pasang dan jalankan hasil build-nya.
xcrun simctl install booted build/Build/Products/Debug-iphonesimulator/MyApp.app xcrun simctl launch booted com.example.MyApp
Ambil screenshot yang bisa dibaca agen.
xcrun simctl io booted screenshot /tmp/screen.png
Claude Code dan Codex sama-sama bisa membuka file gambar. Suruh agen mengambil screenshot setelah setiap perubahan UI. Suruh juga agen menjelaskan apa yang dilihatnya sebelum menyatakan selesai. Satu instruksi itu menangkap sebagian besar kesalahan layout.
Jalankan test dengan cara yang sama
xcodebuild -scheme MyApp \ -destination 'platform=iOS Simulator,name=iPhone 16' \ -derivedDataPath build \ test
Path derived data itu penting. Jika disimpan di dalam folder proyek, build kedua bersifat inkremental dan selesai dalam hitungan detik, bukan menit. Agen yang menunggu empat menit per build hanya menyelesaikan seperempat pekerjaan.
Taruh loop-nya di file instruksi
Kedua agen membaca file di root repository untuk instruksi proyek. Claude Code membaca CLAUDE.md, dan Codex membaca AGENTS.md. Taruh loop-nya di sana agar setiap sesi dimulai dengannya.
## Building and checking this app - Build: xcodebuild -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 16' -derivedDataPath build build - Run: xcrun simctl install booted build/Build/Products/Debug-iphonesimulator/MyApp.app && xcrun simctl launch booted com.example.MyApp - Look: xcrun simctl io booted screenshot /tmp/screen.png, then open the image - After any UI change, build, run, and look before saying it is done. - Tests: same xcodebuild command with test instead of build.
Hal yang sering menjebak agen
- Xcode belum dipilih. Setelah memasang Xcode baru, jalankan xcode-select untuk menunjuk ke sana. Jika tidak, xcodebuild memakai yang lama.
- Simulator belum menyala. Perintah launch gagal dengan error yang tidak jelas. Nyalakan dulu dan biarkan menyala.
- Runtime belum terpasang. Xcode yang baru dipasang tidak punya runtime iOS sampai Anda mengunduhnya. Unduhannya beberapa gigabyte dan harus selesai sebelum agen mulai.
- Tidak ada sesi login. Simulator adalah aplikasi GUI. Di mesin headless tanpa ada yang login, simulator tidak akan jalan. User agen butuh sesi desktop yang aktif. Karena itulah login otomatis penting di Mac tanpa pengawasan.
Yang kami siapkan untuk Anda
Di Mac untuk agen dari kami, Xcode sudah terpasang dan runtime iOS sudah diunduh. User agen punya sesi desktop yang selalu menyala. Claude Code dan Codex tinggal menunggu Anda login. Tambahkan loop di atas ke file instruksi Anda, dan agen bisa build dan melihat aplikasi Anda sejak tugas pertama. Panduan kemampuan membahas apa lagi yang berfungsi di mesin itu dan apa yang tidak.
Pertanyaan yang sering diajukan
Bisakah Claude Code build aplikasi iOS di Linux?
+
Tidak. Claude Code bisa mengedit file Swift di Linux, dan bisa mengompilasi Swift package yang tidak bergantung pada framework Apple. Build aplikasi iOS butuh Xcode, yang hanya berjalan di macOS.
Apakah agen butuh iPhone fisik?
+
Untuk sebagian besar pekerjaan, tidak. Simulator mencakup build, menjalankan aplikasi, screenshot, dan UI test. Perangkat fisik dibutuhkan untuk hal seperti kamera, push notification, dan performa di hardware asli.
Bisakah agen mengambil screenshot simulator?
+
Bisa, dengan perintah simctl screenshot, selama simulator menyala dan user agen punya sesi desktop. Agen lalu bisa membuka gambar itu dan membacanya.
Versi Xcode mana yang akan dipakai agen?
+
Versi yang ditunjuk oleh xcode-select. Tetapkan di file instruksi Anda. Di mesin dengan beberapa versi, suruh agen memeriksanya sebelum build.