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:

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 locally attached device 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 locally attached device 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

See Also