A minimal native iOS template for remote development sandboxes.
Use this repo when you want a Linux or Archil worker to edit Swift source while Revyl keeps iOS builds on Mac runners and validates the app in a cloud simulator. The key loop is simple:
- Edit Swift on the worker.
- Send the working tree to a Revyl Mac build runner.
- Build the simulator
.appwith Xcode. - Reinstall into the same running Revyl simulator session.
- Validate with screenshots and device instructions.
Linux / Archil worker Revyl Mac runner Revyl simulator
edits Swift source -> runs Xcode build -> receives reinstall
drives CLI commands keeps warm caches stays alive
- Archil or shared filesystem: makes the repo available to a Linux worker or coding sandbox.
- Revyl Mac build runner: receives source snapshots and runs the configured Xcode simulator build.
- Revyl cloud simulator: runs the app, receives rebuilt artifacts, and supports screenshots plus grounded device instructions.
The worker is the editing and validation environment. The Mac runner is the build environment. The simulator session stays alive across rebuilds.
Prerequisites:
- Revyl CLI installed and authenticated.
- A Linux or Archil worker with this repo available on disk.
- Access to Revyl remote iOS build runners.
Mount an Archil disk on the Linux worker, then put this repo on that mount:
sudo mkdir -p /mnt/archil
export ARCHIL_MOUNT_TOKEN="<disk-token>"
sudo --preserve-env=ARCHIL_MOUNT_TOKEN archil mount <disk-name> /mnt/archil --region aws-us-east-1Open the repo from the mounted filesystem:
cd /mnt/archil/revyl-remote-devloop
revyl auth login
revyl dev --context remote-feature --remote --platform ios --build --no-openOn first run, Revyl prompts you to create or select the app that should own this dev loop.
After editing Swift source, rebuild and reinstall into the same simulator session:
revyl dev rebuild --context remote-feature --wait --jsonCapture and validate the running app:
revyl dev use remote-feature
revyl device screenshot --out /tmp/revyl-feature.png
revyl device instruction "Verify that the Build Marker value is visible."Inspect status:
revyl dev status --context remote-feature --jsonOpen this folder in a coding agent and ask it to follow AGENTS.md. The agent should edit SwiftUI source, rebuild through the remote-feature Revyl dev context, observe the simulator, and iterate until the requested feature is visible.
Example prompt:
Using AGENTS.md, implement this feature:
Add a settings panel with a theme toggle. Show the selected theme on the details screen.
Use the Revyl remote dev loop to rebuild and validate it on the simulator.
See docs/README.md for a recorded worker-side loop with the exact CLI commands, Swift edit, remote rebuild, simulator reinstall, and validation step.
Change the buildMarker string in SwiftMinimal/ContentView.swift, then press r in the running revyl dev --context remote-feature --remote terminal or run:
revyl dev rebuild --context remote-feature --wait --jsonExpected result:
- Revyl packages the current working tree, including uncommitted edits.
- A Revyl Mac build runner builds
SwiftMinimal.appforiphonesimulator. - The same cloud iOS simulator session receives the new build.
revyl dev status --context remote-feature --jsonreports remote build state.
- Tiny SwiftUI app.
- Xcode simulator build config in
.revyl/config.yaml. - Agent prompt contract in
AGENTS.md. - Recorded demo assets in
docs/. - No npm wrapper, custom queue, fake runner, or local iOS build requirement.
- The worker remains responsive for editing, streaming, automation, and debugging.
- Xcode build work moves to Mac runners with warm caches.
- Build failures and runtime failures are separated.
- One built artifact can be reused across simulator sessions.
- V1 keeps full artifact reinstalls; rebuild speed comes from sticky runner workspaces and warm Xcode caches.