Hi Roger,
Cool! Don't think anyone else has tried this yet. Do you use [1] or something else? The clang/llvm part is the easy bit since it's cross-platform. Deploying to a device should also be quite easy thanks to libimobiledevice. Those pieces are already in RoboVM and it would be trivial to make that work on Linux. The hard part is the linking and codesigning I would say. Would be interesting to know more of your process:
How does the toolchain you are using link the binaries? A port of Apple's ld or something else like LLVM's lld [2]?
How do you codesign or do you deploy on a jailbroken device without codesigning?
Which iOS SDK are you building against? iOS 8.x or older?
How do you download the iOS SDK to your Linux or do you use a Mac to get it and then copy to Linux?
In robovm/compiler there's a class called org.robovm.compiler.util.ToolchainUtil that handles most of the command line tools discovery so that's a good place to start patching to make it run the linker and other external tools correctly.
The LLVM binaries we include for Linux are already capable of targeting iOS ARM32/64 and produce proper Mach-O object files so no patches should be necessary there.
We used to include libimobiledevice binaries for Linux but we stopped since it was a bit hard to get it to compile with the latest version. But it should definitely be doable to get that working again. The code for the libimobiledevice Java wrapper is in robovm/libimobiledevice.
For codesigning [3] could be of interest.
/Niklas