💸 100% FREE & UNRESTRICTED No hidden costs. No locked features. No premium tiers. SwapLab Desktop is purely a tool to empower developers.
The transparent, secure, and optimized environment for preparing iOS projects on Linux/Windows/Mac via SwapLab Desktop.
This repository hosts the public Dockerfile used to build the iOS core environment for SwapLab Desktop. We believe in total transparency: you should know exactly what tools (Node.js, Ruby, CocoaPods) are present in the system handling your source code.
SwapLab Desktop acts solely as a trigger. The build process executes entirely inside Docker containers. SwapLab Desktop will NOT function without Docker Desktop installed and running.
To ensure both Community Trust (Transparency) and Operational Integrity (Security), our architecture is split into two distinct layers. Both are publicly available for use:
| Layer | Image Name | Status | Description |
|---|---|---|---|
| 1. Base Core | swaplab-engine/desktop-ios-core |
Open Source (This Repo) | Contains the raw environment: OS, Ruby, Node.js, and CLI tools. Open for security auditing. You can verify that the environment is clean and standard. |
| 2. Build Engine | swaplab-desktop-ios-engine |
Public Package | This is the final executable image used by the Desktop App. It is built on top of this Base Core but includes our Proprietary Automation Logic to manage the complex build process seamlessly. Official Packages: 🍎 View iOS Engine on GHCR 🤖 View Android Engine on GHCR |
The build engine images are also released publicly on Docker Hub for easy access. You can verify and download them directly:
- CLI Command:
docker run swaplab/swaplab-desktop-ios-engine:v1.0.0 - Via Docker Desktop App:
You can easily find these images using the Docker Desktop GUI:
- Open the Docker Desktop app.
- In the search bar, type
swaplab. - You will see
swaplab/swaplab-desktop-android-engine:v1.0.0andswaplab/swaplab-desktop-ios-engine:v1.0.0. - Simply click the Pull button to download them manually if desired.
Preparing an iOS project on non-Mac machines usually involves a nightmare of setting up Ruby environments, managing conflicting CocoaPods versions, and dealing with NPM dependency hell. SwapLab eliminates all of that.
SwapLab Desktop is a lightweight (~10MB) GUI controller that triggers this Docker Engine to sanitize and prepare your iOS project in seconds.
- 🚫 NO CLI / NO Config: Forget
pod installerrors,Rubyversion mismatches, orgemconflicts. It just works out of the box. - 🔒 100% Privacy & Control:
- No Sign-In Required: We don't ask for your email or personal data.
- No Data Collection: Your source code NEVER leaves your machine.
- Local Execution: Everything runs locally on your localhost.
- ⚡ Blazing Fast: Leveraging aggressive caching strategies (NPM & CocoaPods), subsequent preparations take seconds.
- 🌐 Offline Capable: Once the engine image is downloaded, you can prepare apps without an internet connection.
- 🛡️ Isolated Environment: Dependencies run inside ephemeral Docker containers. Your host OS remains clean (no need to install Ruby globally).
Compatible with any framework that exports web assets (HTML/CSS/JS). If it runs in a browser, SwapLab can turn it into a native app.
🧪 Want to test it now? Clone our ready-to-use samples: https://github.com/swaplab-engine/desktop-simple-project
| Game Engines | Modern Web | UI & Classic |
|---|---|---|
| 🎮 Construct 3 | ⚛️ React | 📱 Ionic |
| 🎮 Construct 2 | 🟢 Vue / Vuetify | 🎨 Framework7 |
| ⚡ Alpine.js | ||
| ▲ Next.js | 📦 Vanilla JS | |
| 🟠 Svelte / Preact | 💎 Stencil | |
| 🟦 SolidJS | ||
| 🚀 Astro / Remix | 🐦 Flutter (Web) |
Since Xcode (required for final .ipa compilation) only runs on macOS, SwapLab handles the "Preparation Phase" (Dependency Resolution & Workspace Generation) on ANY OS (Linux/Windows/Mac), then hands off a ready-to-compile project.
graph TD
A[User's Web Project] -->|Mount Volume| B{SwapLab Desktop}
B -->|Trigger Process| C{Docker Desktop}
C -->|Spin Up Container| D[Desktop iOS Core Image]
subgraph "Inside Container (Linux Environment)"
D -->|1. npm install| E[Install Web Deps]
D -->|2. npx cap sync ios| F[Generate Native Project]
D -->|3. pod install| G[Generate Workspace]
end
G -->|Result| H[Ready-to-Build iOS Folder]
H -->|User Action| I[Open in Xcode on Mac]
style D fill:#000000,stroke:#fff,stroke-width:2px,color:white
- Inheritance: The engine inherits this transparent public core.
- Automation: Our internal logic orchestrates the tools installed in this core.
- Result: A fully generated
ios/folder, ready for Xcode.
This image is optimized for iOS Dependency Resolution. It allows you to audit the toolchain versions we use.
| Component | Version | Description |
|---|---|---|
| OS | Ubuntu 22.04 LTS | Stable Linux Foundation |
| Node.js | v20 (LTS) | JavaScript Runtime |
| Ruby | Latest Stable | Required for CocoaPods |
| CocoaPods | Latest Stable | iOS Dependency Manager |
| xml2js / plist | Latest | Cordova Plugin Hook Dependencies |
| Capacitor CLI | v7.1.0 | Native Runtime Bridge |
| Cordova CLI | Latest | Legacy Support |
| Security | Trivy | Embedded vulnerability scanner |
Note: This image does NOT contain Xcode or Android SDKs. It focuses purely on preparing the project structure.
SwapLab requires the Docker Engine to function.
- Mac: Install Docker for Mac
- Windows: Install Docker for Windows
💡 Pro Tip: You do NOT need to sign in to Docker Desktop. You can simply skip the login step. Just ensure the Docker Engine status is "Running".
Get the lightweight controller for your OS.
- Download: desktop.swaplab.net
- Size: ~10 MB
Open SwapLab Desktop, select Target: iOS, and hit Start Process.
You can pull this image to verify that the environment contains standard, safe tools:
# Pull the public base image
docker pull ghcr.io/swaplab-engine/desktop-ios-core:latest
# Audit the tools
docker run -it --rm ghcr.io/swaplab-engine/desktop-ios-core:latest bash
# Example checks:
node -v
pod --version
# Note: This container only holds the tools. It does not contain the automation logic.| Feature | SwapLab Cloud | SwapLab Desktop (This) |
|---|---|---|
| Environment | Our Mac Servers | Your Local Docker |
| Logic | Managed Server-Side | Secure Container |
| Setup | Zero | Minimal (Docker) |
| Privacy | Secure Upload & Delete | 100% Local / Offline |
SwapLab — Build Native Apps. Simply.