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++, Objective-C/C++ or Swift 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++, Swift, 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:
- The same compiler as Xcode — which means all the ObjC language features (ARC, blocks, etc) are supported.
- The same Swift compiler as Xcode — which means you can build code written in the Swift language.
- The same linker as Xcode — which means you can produce both armv7 and arm64 binaries (32 and 64-bit).
- The same binary utilities as Xcode — to examine, modify, split, merge, hack, boil, cook and spice the resulting files.
- An assets compiler, binary compatible with Apple's, to package your project's Xcode assets into an
Assets.car
file. - a code signature tool that enables your app to be deployed on your iDevice using your own iOS signing identity.
- a certificate, private key and provisioning profiles management tool to help you setup or migrate your signing identity.
- an iTunes Connect upload tool to send your .ipa files to the App Store.
- a Unity project builder.
- a remote debug console, to display log messages from your app on your PC while your app is running and receive stack traces when it crashes.
- an OTA app deployment tool to deploy your app to your iDevice over Wifi.
- a versatile command-line project builder.
- a debugger for iOS.
- a Visual Studio project creation wizard and build script creator.
- an automatic .plist file converter, from binary to text and vice versa.
- a PNG file normalizer.
As well as 20 examples, including source code and build scripts, compilable out of the box.
The languages this toolchain can build are:
- C/C++
- Objective-C/C++
- Swift
- ARM assembly
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 code — contact 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
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.
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.· 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.
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.
+ 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.
Support center
NOTE: this forum is for active users of this toolchain who are looking for a solution to a problem or suggest improvements.
It is not aimed at answering general question and answers about the product for people who aren't using it already.
Changelog
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.