Build, deploy and publish real iOS apps

from the Windows side of the force.

Download and try out for free!
Until the software is activated, apps created with it display a popup message.
Real code signing (and support for non-jailbroken devices) also requires activation.

What's that?

An iOS toolchain for Windows. That's to say, build tools for developers who are accustomed to Windows and don't like to be forced to use Apple software to create, build and deploy their native iOS apps.

For whom?

Developers. From intermediate to expert, or even beginners that are serious enough to not expect a magical point-and-click thing : a reasonable knowledge of either C/C++ or Objective-C/C++ is expected to start building an iOS app.

Why?

Save time. If you are accustomed to development on Windows and know next to nothing about OS/X, the learning curve may be steep. Especially if you're just supposed to use Xcode to build a project generated by a third-party tool that works on Windows, such as the Unity editor or PhoneGap/Cordova, having the possibility to build and deploy directly from Windows without ever rebooting into your Mac will save you a lot of time — and I mean a lot.

Learn. The inner architecture of an iOS app is not very complicated, but Xcode hides it all under the curtain. Having a toolchain that works on a familiar ecosystem and does things more simply than what Xcode does is an ideal learning tool. Watch your app being compiled, linked, signed and packaged in an intelligible way.

Be creative. With complete control over the generation toolchain, you get complete control over the type of binaries that you produce. You can thus build a lot more things than what Xcode allows you to. For example, you can create new tweaks or system services that will work on jailbroken phones. PC Networking (available on Cydia), made with this toolchain, is a good example.

How do I use it?

Plug the toolchain in your favourite IDE (Eclipse, EditPad Pro, Visual Studio, etc.) A basic project creation helper wizard is provided that creates iOS projects for Visual Studio. For all the other IDEs, the user is expected to have enough knowledge of his IDE to do that by himself. In the worst case, it's always possible to invoke the build tool from the command line in the project directory.

Then, open your favourite IDE and start coding (in C, C++, Objective-C, Objective-C++, or even ARM assembly). You can use one of the provided example projects to get you started. Once you're happy with your code, hit the usual build button (or invoke the build script from the command line), and watch your app being compiled, linked, signed, packaged into an ipa file, and served for OTA deployment to your iDevice.

Please note: except for Unity projects, auto import of existing Xcode projects is not supported (yet). However, Xcode projects generated by the Unity editor can be built directly, without the need to open them, using the Unity project builder tool.

What's in the package?

The iOS Build Environment features:

As well as 20 examples, including source code and build scripts, compilable out of the box.

The languages this toolchain can build are:

The Right Tool for iOS Software Professionals

Game companies that build apps everyday typically integrate these tools in their production toolchain, usually shortening it quite significantly.

If you're a Unity developer, build and deploy your Unity project for iOS on Windows in 1 click!

For those of you who run a UNIX build server, a Linux and FreeBSD version of these tools is available on request — contact me.

Concerned about the viability of this solution ? Sign up for a readonly SVN access and stay up to date with the toolchain source codecontact me.

How much is it?

Activating the toolchain (to be able to create signed apps that work on non-jailbroken devices and upload them to the App Store) is US$ 45.

Buying the source code of this product is possible through a yearly SVN subscription. Contact me me for details.

Payment is done through Paypal so you don't need to worry about exchange rates. Bank transfer is also possible — contact me.

FAQ

Which versions of Windows are supported? 32 or 64 bits? What about Visual Studio? What about the other IDEs?
The iOS Build Environment works on all reasonably recent versions of Windows i.e. Windows Vista, Windows Server 2008, Windows 7, Windows Server 2012, Windows 8/8.1 and Windows 10, as long as it's 64-bit. Indeed, starting from version 3.0 of the toolchain, the 32-bit OS support has been dropped (it was implying too many limitations, notably when generating very large files). As for Visual Studio, all the Visual Studio versions from version 2008 are supported, which means Visual Studio 2008, 2010, 2012, 2013 and 2015, including Visual C++ Express which is free.
As for the other IDEs: basically, any IDE that can bind a shell command to a button or a hotkey will work. And even, in the worst case, there is still the possibility to build your app from the command-line.
Does this toolchain mean I can code iOS apps in Visual Basic, Delphi, C# or .NET?
Not directly. Here, we use a Windows port of Apple's build tools ; in consequence, only the languages that the Apple build tools support may be used. This does not include Visual Basic, Delphi, C# or .NET - unless your project includes Mono or something equivalent like Unity or Xamarin do. Only through this approach can it be made possible.
Are updates free? How do I update?
Yes they are. To update your toolchain to the latest version, simply download it from here and reuse your activation code to activate it.
How come it's cheaper here than on the Unity Asset Store?
The first and foremost reason is because Unity take their share to compensate for the much better exposure they offer my toolchain. Besides, both versions are not exactly the same product. The one on the Asset Store is specifically tailored for Unity, with a shorter and (hopefully) better fitted documentation, and comes pre-activated - all this to get you at work faster, whereas the version on my website, although it can also build Unity projects, is more generic and requires product activation.
I see you support Unity out of the box. What about Xamarin?
This toolchain evolved with Unity because I use it myself. But it would be perfectly possible to achieve the same level of integration with Xamarin. It's just not done yet. If you'd like, through sponsorship, community funding or as a paid contract, to fund a fine integration with Xamarin within this toolchain, this is definitely possible. Contact me.
What about Swift?
Porting the Swift compiler swiftc is a big task. If you want, through sponsorship, community funding or as a paid contract, to fund the porting of the Swift compiler to Windows within this toolchain, this is definitely possible. Contact me.
Is there an iPhone simulator for testing my apps?
Unfortunately, creating a third-party iOS emulator is forbidden by Apple Inc. But testing may be done on the iPhone itself. Also, if your app uses a subsystem that interfaces with iOS, such as Cordova (ex-PhoneGap) or Unity, you may test your app directly from a web browser or the Unity editor on your PC. You can also use the remote debug console to watch your app logging debug information live over the network to your PC.
Can I debug my apps?
Yes. You have the ability to use the remote debug console that receives all your app's logs over Wifi while it runs, as well as the stack trace when it crashes. You can also use all the standard C/C++ I/O facilities to stdout and stderr, as well as the NSLog() macros that are provided by the iOS SDK, to log your program's activity to the remote debug console. If your device is jailbroken, you have even more power: you can run your app inside a debugger on the device itself by installing gdb, the GNU Debugger (the package is provided, as well as a quick handling tutorial). Personally, I do my debug in-situ using logging macros with the remote debug console, and I use gdb for the bugs that the first method fails to put into evidence. Also, if your app uses a subsystem that interfaces with iOS, such as Cordova (ex-PhoneGap) or Unity, you may debug your app directly from a web browser or the Unity editor on your PC.
Is it possible to use Visual Studio's debugger?
No. But that's something that could definitely be done. If you want, through sponsorship, community funding or as a paid contract, to fund the development of a DLL interface between a remotely running iOS app and the Visual Studio debugger, this is definitely possible. Contact me.
Do I need to jailbreak my iPhone/iPod/iPad, and how do I do that?
Only if you wish to develop non-standard apps, or use the debugger directly on your device, you will need to jailbreak it indeed, in order to lift certain restrictions imposed by Apple Inc. on their consumer devices, which are incompatible with a somewhat advanced use of their devices. To do that, visit http://jailbreak-me.info and follow the instructions. This process is 100% legal, reversible, and for its greatmost part automated. No technical skills are required.
How do I submit my app to Apple's App Store?
Use the supplied iTunes Connect upload tool :-)
How to submit my app to the Cydia Store?
To send your app to Cydia, it depends on which source (repository) you want to host it.
  · For the Modmyi repository, it's here: http://modmyi.com/devportal (the process is automated)
  · For the BigBoss repository, it's here: http://thebigboss.org/hosting-repository/submit-your-app
  · For the other repositories, please refer to their owner's website.
Can I get the source code of this product?
This product falls under the larger work class of products according to the Apple Public Source License. The original Apple code can be downloaded here. Yet, all the parts of this larger work that are not covered by the Apple license, such as the compatibility layer which I developed to enable the original Apple code to work on non-Apple platforms, as well as the code signing tool, are not open source. Some companies have subscribed for a read-only access to my SVN. If you are interested in such a subscription, please contact me.
Doesn't this product infringe one of Apple's licenses?
There seems to be a lot of concern about this. I am not a lawyer, but here is why, to my knowledge, it doesn't:

From the iOS SDK agreement :

2.2 Permitted Uses and Restrictions
Subject to the terms and conditions of this Agreement, Apple hereby grants You during the Term, a limited, non-exclusive, personal, revocable, non-sublicensable and non-transferable license to:
(a) Install a reasonable number of copies of the SDK on Apple-branded computers owned or controlled by You, to be used internally by You or Your Authorized Users for the sole purpose of developing or testing Applications; and
(b) Make and distribute a reasonable number of copies of the Documentation to Your Authorized Users for Your internal use only and for the sole purpose of developing or testing Applications.

Interpretation :

Developers of iOS apps are entitled to install the iOS SDK on computers running Microsoft Windows, provided they are Apple-branded (in extenso: running Boot Camp). They may perfectly choose to develop iOS apps on the Windows side of their Apple-branded computer rather than using the Xcode software on macOS, for personal convenience reasons.

I am thus allowed to provide these developers with means to use this SDK on the Windows side of their Apple-branded computer. Whether they install it on their Apple-branded computer like Apple requires them to or on any other PC, although I am legally obliged to disapprove the latter case, is beyond my responsibility.
Who are you?
I am an independent IT professionnal and an experienced programmer. If you think your company could hire me (or even buy this whole technology), feel free to make an offer (contact me here).
Can I sponsor your work, and hurry the development of a particular feature?
Of course! Some companies already used this means so that I could provide them quickly with some features they were interested in. Among those:
+ mobileFX (http://www.mobilefx.com) - Marketing software
+ Sproing Interactive Media (http://www.sproing.at) - One Jump Ahead!
+ (Other sponsors chose not to be disclosed)
If you wish to sponsor this project, let's get in touch so we can discuss the terms.

Changelog

Not available

Random testimonials

"Brilliant software." -- Kai W.

"Instead of spending an hour in XCode to build a working IPA I can do it with blazing speed on my PC [...]. Bless you, dude (no kidding)" -- Armen B.

"This is such a great tool, and I can't wait to recommend it to my students." -- Christopher S.

"I've just tested my project [...], everything went well and the compilation ended successfully which enabled me to try my audio player project in real conditions. Your build environment turns out to be really interesting. Kudos!" -- Louis A.

"Installed and working perfectly on my iphone [...]. I feel the weekend's gonna be productive ;-)" -- Fred D.

"Things worked great from vs2010. Thanks for this project - I'm very happy being able to tinker on windows laptop." -- Jonathan G.

"Thank you Pierre for your great work. As first example i compiled GLCube and tested it [...], ran perfectly. Really great job." -- Nima P.