iOS Swift development IDE for Windows/Linux
Supports Swift 6.1 and the Swift Package Manager.
CrossCodeDemo.mp4
CrossCode is currently in alpha. Expect bugs!
Download the latest build for your platform from releases.
Check out the Getting Started section of the wiki. Also, see Troubleshooting and FAQ
- Generate a Darwin SDK for linux from a user provided copy of Xcode 16.3 to build the apps
- Build apps using swift package manager
- Log in with your Apple ID to sign apps
- Install apps on device
- Create projects from templates
- Code editing including error reporting, autocomplete, go to definition, and other language features
- Light/dark mode and other customizations
- View and manage certificates, app IDs, and more
- View the syslog or the stdout (console) of your device/app
- Much more (and more to come!)
The app is currently functional but does not have all the features it should. You can see a tentative plan for the future on trello
Please note that I am one person, so development may be slow. If you want to help, PRs welcome!
- A darwin SDK is generated from a user provided copy of Xcode 16.3 (extracted with unxip) and darwin tools from darwin-tools-linux-llvm
- Swift uses the darwin SDK to build an executable which is packaged into an .app bundle.
- The code to sign and install apps onto a device has been removed from CrossCode's source and moved to a standalone package, isideload. It was built on a lot of other libraries, so check out its README for more info.
- idevice is used to communicate with iOS devices.
- xtool has been used as a reference for the implementation of the darwin SDK generation.
- Sideloader has been heavily used as a reference for the implementation of the Apple Developer APIs and sideloading process.
- Helped port small sections of code from Sideloader because I'm not familiar with dlang syntax