Building Codename One Apps Offline

Codename One uses a build server architecture. This alleviates the need for a Mac for iOS/Mac OS builds. It also alleviates the need for a Windows machine when targeting UWP/Windows desktop. It also simplifies the setup process as the build process on the servers is very elaborate, it requires several 3rd party tools and a delicate environment.

Before we go into the discussion people usually ask for offline building due to two reasons:

SecuritySize limits

Since only bytecode is sent to the servers this is the equivalent of sending your compiled binary. The security implications are minimal. The size limits for the jar can be worked around in the free version and don't apply in the paid version. If you need more than the 50mb limit for the JAR then your resulting binary will be unusable on devices to begin with. Keep in mind that the resulting app tends to be 10x-12x larger than the jar file (and sometimes more). A 50mb app can reach 500mb in size in production (size increases further after uploading to itunes).

Having said that you can build a Codename One application without the build servers by using the source code. It's hard though. There's this project that effectively created the Android support offline without the server. We can't warrant the work done there as we didn't test/review it.

There is a lot of information both in the project, stackoverflow and the discussion group covering offline building. We put it all together in the online course too.

We would recommend people don't use that path as it's more pain than it's worth and the build server is effectively free.

The enterprise version of Codename One includes a "simplified" offline builder. It's a non-trivial tool designed for enterprises where usage of cloud is heavily restricted. That's why it isn't generally available to everyone. The complexity of that tool and its output would crush our support otherwise.