Three month project is over and I can share the result. I built all missing components to make it able to develop iOS projects using Windows and Linux host.

First of all what it can’t:



There is no any simulator available (deploy to device only);

There is no Interface Builder alternative available, so UIKit UI can’t be developed. But you still can deploy it;

There is no TextureAtlass compiler, but you can attached third party one by using config;

What it can with limitations:

Codesign is limited to binary only, will not sign any embedded Frameworks (will be added soon);

Xib/Storyboard compiler is full of bugs and can produce only simple UIs (work in progress);

pngcrunch functionality not implemented as not required for MVP;

How this was done:

There will a technical post with detailed explanations, in two words following was done:

RoboVM adapted to be able use different approaches depending on OS;

Compiled libLLVM and LibMobileDevice;

Implemented code sign;

Collected toolchain utils replacement for MacOSX ones (linker, ibtool, actool, otool, lipo, dsymutil, strip etc);

Dependencies:

Windows: iTunes has to be installed to provide usbmux layer

Installation:

Download and install MVP RoboVM Idea plugin. Once started you should see following screen: Install toolchain: depending on operation system and arch from screenshot above pick package to download.

windows-x86_64

windows-x86 /not tested/

linux-x86_64

linux-x86 /not tested/

windows-x86_64 windows-x86 /not tested/ linux-x86_64 linux-x86 /not tested/ change dir to ~/.robovm/platform/ (create if missing) and unpack package. UPDATE: there is homemade SDK available. Provide Xcode files. .tbl and device images are needed to run code. Its not allowed to distribute these files due copyright moments. But you should be able to make a backup from your legal copy of Xcode with following script: rsync -avmL --include '*/' \ --include = 'Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/**/*.tbd' \ --include = '/*.plist' \ --include = 'Developer/Platforms/iPhoneOS.platform/*.plist' \ --include = 'Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/*.plist' \ --include = 'Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/CoreServices/*.plist' \ --include = 'Developer/Platforms/iPhoneOS.platform/DeviceSupport/10*/*' \ --include = 'Developer/Platforms/iPhoneOS.platform/DeviceSupport/11*/*' \ --exclude = '*' /Applications/Xcode.app/Contents/ Xcode.app && zip -r xcode_app Xcode.app

copy backup xcode_app.zip to target platform, change dir to ~/.robovm/platform/ and unpack xcode_app.zip . At this moment there should be no red lines about xcode/toolchain and installation could be completed. Setup Provision profiles and signing certificates Provision profiles shall be copied to ~/.robovm/platform/mobileprovision/ (create folder if required)

(create folder if required) Certificates and private key shall be exported from keychain to .p12 file without password as described here and here, keychain. Put p12 files to ~/.robovm/platform/keychain/ (create folder if required)

(create folder if required) Once these folders are set up provision profiles/certificates shall appear in “Run/Debug configuration”

At the end ~/.robovm/platform folder shall contain following structure ( windows-x86_64 as example here):

C:\USERS\DKIMITSA\.ROBOVM\PLATFORM +---keychain | robovm4windows.p12 +---mobileprovision | robovm4windows.mobileprovision +---windows-x86_64 | actool.exe | arm-apple-darwin11-codesign_allocate.exe | ... | tapi.dll | xib2nib.exe \---Xcode.app | Info.plist | version.plist \---Developer \---Platforms \---iPhoneOS.platform | Info.plist | ... \---DeviceSupport ...

Run/Debug project same way as on MacOSX.

Credits