CrossBox
A CrossBox Server is used to facilitate building and debugging Elements projects on operating systems other than that used by the developer. For example, a developer working on Windows might want to debug a Mac or Linux app, or a developer working in Fire on Mac might want to run an application on a Windows or Linux host for debugging.
The new CrossBox 2 system is used in all scenarios where a remote connection is needed. CrossBox 1 (which required a a dedicated CrossBox server app on the Mac) is deprecated and no longer required/used.
CrossBox works via SSH and is used for both Cocoa and Island projects, to run them remotely on Macs, Linux or Windows (from a Windows PC or a Mac). (SSH is available on Linux, Mac and newer Windows versions by default, and can easily be installed, via OpenSSH, if needed)
From Fire, a CrossBox connection is required for running and debugging both Windows or Linux applications, since neither can be run locally on the Mac, for obvious reasons. Of course this Windows or Linux machine can be a dedicated PC or server, or a Virtual Machine running inside Parallels or VMware on your Mac.
From Water and Visual Studio, a CrossBox connection is required for building, running and debugging Cocoa apps, and can also optionally be used for running and debugging Island projects on Linux and Mac.
From Linux build servers or when working with the command line compiler, a CrossBox connection is required for building Cocoa apps.
Support for running .NET apps via cross-box is experimental and in development.
Island/Windows and Linux applications can be built locally on both Mac, Windows and Linux, without the need for a remote connection.
Connecting to CrossBox
Connecting your development system to CrossBox is easy:
- Connecting to CrossBox from Fire
- Connecting to CrossBox from Water
- Connecting to CrossBox from Visual Studio
- Connecting to CrossBox from EBuild on the Command Line
CrossBox in Water and Visual Studio
The following table shows how CrossBox is involved for various project types when working on Windows, whether in Water or Visual Studio (on Windows). Only Cocoa projects need a remote connection to build, all other platforms (including Island/Linux) build and link locally. For obvious reasons, Cocoa projects debug remotely. Island/Linux can debug locally, if Bash for Windows is installed, as well as remotely.
Platform | SubPlatform | Build | Debug | Comments |
---|---|---|---|---|
.NET | local | local | .NET projects build and run locally on Windows | |
Java | Plain | local | local | Java projects build and run locally on Windows |
Java | Android | local | Java projects build and run locally on Windows | |
Cocoa | macOS | CrossBox | CrossBox | Need a Mac to build and will debug remotely |
Cocoa | iOS | CrossBox | CrossBox | Need a Mac to build and will debug remotely |
Cocoa | tvOS | CrossBox | CrossBox | Need a Mac to build and will debug remotely |
Island | Windows | local | local, CrossBox | Build locally, debug locally or remotely |
Island | Linux | local | local, CrossBox | Build locally, debug locally or remotely |
Island | Darwin | local/CB2 | CrossBox | Build libraries and executables locally, but .app projects or code signing will need a CrossBox connection to build; debug remotely |
Island | WebAssembly | local | local | Build and debug locally |
CrossBox in Fire
The following table shows how CrossBox is involved for various project types when working in Fire on a Mac. Here, all platforms (including Island/Linux and of course Cocoa) build and link locally, and only Island/Linux projects debug remotely.
Platform | SubPlatform | Build | Debug | Comments |
---|---|---|---|---|
.NET | local | local | .NET projects build and run locally on Mac | |
Java | Plain | local | local | Java projects build and run locally on Mac |
Java | Android | local | Java projects build locally on Mac | |
Cocoa | macOS | local | local | Cocoa apps build and run locally on Mac |
Cocoa | iOS | local | locally attached iOS device | Cocoa apps build locally on Mac |
Cocoa | tvOS | local | locally attached Apple TV | Cocoa apps build locally on Mac |
Island | Windows | local | CrossBox | Build locally, debug remotely |
Island | Linux | local | CrossBox | Build locally, debug remotely |
Island | Darwin | local | local, CrossBox | Build locally, debug locally or remotely |
Island | WebAssembly | local | local | Build and debug locally |