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.

Depending on your target platform and IDE, different build and deploy scenarios will involve CrossBox. CrossBox comes in two versions:

CrossBox 1

Classic CrossBox Server ("CrossBox 1") runs on Mac as a standalone application, and is used solely for building and debugging Cocoa apps on Mac, iOS and tvOS, from a Windows-based development environment.

CrossBox 2

CrossBox 2 works via SSH and is (currently as of Elements 9.0) used only for Island projects, to run them in Linux or Windows (from a Windows PC or a Mac). CrossBox 2 no no longer requires running a custom app on the target machine, and instead uses SSH. (SSH is available on Linux and Mac by default, and for Windows we will be providing a light-weight SSH server you can run, in Elements "Intrepid Class".)

In the long run (Elements "Intrepid" and later), we will expand CrossBox 2 to facilitate remote debugging for all target platforms (e.g. including .NET and Java applications), as well as have it replace the use of CrossBox 1 for Cocoa projects.

CrossBox in Visual Studio

The following table shows how CrossBox is involved for various project types when working in 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, both Cocoa and Island/Linux projects debug 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 locally on Windows
Cocoa macOS CrossBox 1 CrossBox 1 Need a Mac to build and will debug remotely
Cocoa iOS CrossBox 1 CrossBox 1 Need a Mac to build and will debug remotely
Cocoa tvOS CrossBox 1 CrossBox 1 Need a Mac to build and will debug remotely
Island Windows local local Build and run locally
Island Linux local CrossBox 2 Build locally, debug remotely

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 2 Support coming in Elements "Hokule'a Class"
Island Linux local CrossBox 2 Build locally, debug remotely