Use your Windows tools to Develop iOS
About us : Try it : Questions : Contact



What is it?

Prebuild toolchain, to let you develop and run iOS applications on iOS devices using Windows
The toolchain includes:
  • Compiler and linker for Objective-C, C++, C
  • Signing tool and IPA generator
  • IPA installer
  • Complete detailed setup walkthrough

With this toolchain, we've managed to do 99% of our developments using only Windows.
That is what we're sharing here, our experience, current toolchain, setup documentations and plans.

What can you do with it?

You can do the same things, as with a Mac OS X and XCode, but using your good old tools on Windows, like Visual Studio or any other Developer IDE.

What it's not?

It's not a boxed application, that you can install, and have an app running in seconds, you're going to need some work to get everything right.
It's not an SDK, you have to write the same amount of code, as if you were using XCode.

What's here?

Compiler and Linker - It's a heavily patched version of Apple's opensourced compiler and linker, originally located at http://code.google.com/p/mingw-and-ndk/
Windows host port, relocation fixes and Objective-C support fixes by Ray Donnelly, based on work by javacom, Open Darwin, saurik (Jay Freeman), iPhoneDev and Andrew Udvare.

Sign tool - The IPA is just a zip file with a binary and other contents in it. This tool signs the executable and generates the CodeResources signature file for the IPA

Installer - Apple ships it's communication functions with iTunes in iTunesMobileDevice.dll. This tool opens a connection to the device, uploads and installs the IPA

About US

 

Who are we?

We're a small, independent developer group, trying to get rid of every obstacle we face while developing cross-paltform applications.
We have no connection to Apple or Microsoft. We use these tools on a daily basis, and we want to share what we learned.

What will happen here?

We'll always try to make these tools available for free, as long as our legal obligations allow us.
What we offer here now will always be free, we'll not charge for these tools in the future.
We may add new more convenient tools, that requires a fee or a subscription, but you will be always able to do with these tools, what you can do today for free!

Try iTCh - iOSToolChain

What will you need?

Most of our tools are available freely on the internet, but we've spent a good amount of time to asseble it to a complete package. You're going to need these tools and we provide these for free! All we ask is to give us your email address, to keep track of the interest of the project, and to notify you when we move forward!
You'll receive an email with the download links in a few minutes

Enter your email address:

Since the archive you're downloading from the link in the email contains binary executables in a zip file, and not commonly downloaded, Chrome at the moment displays a warning, that: "is not commonly downloaded and could be dangerous" It is NOT harmful or dangerous, we're working with Google to resolve this issue!

You will need a computer running a Windows operating system (we've tested with Windows 7 and 8)
You will need a valid iOS Developer subscription
An iOS SDK:
iOS SDK 5.0 can be extracted purely on Windows
iOS SDK >5.0 can only be downloaded from a Mac OS X machine at the moment

Step 1: get the SDK that we cannot distribute

Let's get the toughest part done first!
You have two options:
a. use the 5.0 SDK that can be extracted purely on Windows
b. get the latest sdk using a Mac OS X machine

Step 1a: get the iOS SDK 5.0 on Windows

Get ios sdk:
Go https://developer.apple.com
Member center
Login
Go https://developer.apple.com/downloads/index.action
Get Xcode 4.2.1 for Lion
You should have a file called installxcode_421_lion.dmg
Download 7 Zip from http://www.7-zip.org/

Using 7 Zip follow the exact steps below (please note, that we had problems extracting the SDK directly, that's why we're extracting only one pkg at a step, you should follow the exact steps below)
1. extract installxcode_421_lion.dmg\5.hfs\Install Xcode\InstallXcodeLion.pkg from installxcode_421_lion.dmg
2. extract InstallXcodeLion.pkg\InstallXcodeLion.pkg\Payload\Payload~\.\Applications\Install Xcode.app\Contents\Resources\Packages\iPhoneSDK5_0.pkg from InstallXcodeLion.pkg
3. extract iPhoneSDK5_0.pkg\Payload\Payload~\.\Platforms\iPhoneOS.platform\Developer\SDKs\iPhoneOS5.0.sdk\ from iPhoneSDK5_0.pkg

For this example, I'm placing it in the C:\TC directory, under the name of iPhoneOS.sdk

You need to fix the library symlinks in usr/lib
Put fixlibs.bat in the sdk root directory, for this example C:\TC\iPhoneOS.sdk
Run C:\TC\iPhoneOS.sdk\fixlibs.bat

Step 1b: get the iOS SDK >5.0

Install the latest Xcode to a Mac OS X, and download the sdk from the file system, for example use WinSCP to download the following directory:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk
While downloading, choose the option to follow symlinks, this way, you don't have to fix the library symlinks in usr/lib
For this example, I'm placing it in the C:\TC directory, under the name of iPhoneOS.sdk

Step 1.5: fix the iOS SDK

For reasons unknown to us, we have to move the headers from the framework Header directories, to a proper folder strucutre.
If you know more about how the compiler on the Mac OS X handles the includes without that, let us know!

Put fixheaders.bat in the sdk root directory, for this example C:\TC\iPhoneOS.sdk
Run C:\TC\iPhoneOS.sdk\fixheaders.bat

Step 2: get your certificate from Apple

Go https://developer.apple.com
Member cetner
Login
Open the iOS Provisioning Portal at https://developer.apple.com/ios/manage/overview/index.action
Select Certificates on the left side, download the WWDR intermediate certificate, place it in a key directory
For this example, I'm placing to C:\TC\keys\AppleWWDRCA.cer

Select Provisioning on the left side, and get an existing Provisioning Profile, or create a new one.
Don't forget to add the device you're using, or installation will fail at the end.
You can always replace the profile and recreate the IPA file.
For this example, I'm placing the provisioning profile to C:\TC\keys\TestProfile.mobileprovision

You're going to need openssl to manipulate the keys.
Open one of the Windows builds of OpenSSL for example: http://slproweb.com/products/Win32OpenSSL.html
Download OpenSSL: Win32 OpenSSL v1.0.1c Light
We don't need the Visual C++ 2008 Redistributables installer, despite the warning when you install OpenSSL.
Let the installer put the files in the default location.
The file names here are important, in order for the toolchain to work, you need to stick with the ios_development.cer and developer.key names.

Step 2a: if you already have a certificate

You're going to need your private key file, what you used to request this certificate
If you used Max OS X Keychain Access tool to request the certificate, here are the steps to extract the private key.
Start Keychain Access tool
Open the keys on the left.
Look for a private key Kind of line, that when you open, has an iPhone Developer certificate attached
Export the key in p12 format and download it to your Windows. The following command will extract the RSA private key, you used to generate you're existing certificate. c:\Openssl-win32\bin\openssl pkcs12 -in exported.p12 -nocerts -nodes | openssl rsa > developer.key
For this example, I'm placing the key to C:\TC\keys\developer.key

On the iOS Provisioning Portal, select Certificates on the left side, download your private certificate
The file names here are important, in order for the toolchain to work, you need to stick with the ios_development.cer and developer.key names.
For this example, I'm placing it to C:\TC\keys\ios_development.cer

Step 2b: if you don't already have a certificate

You will have to generate a certificate signing request and a private key
The following command will generate your private key, for this example, I'm placing it to C:\TC\keys\developer.key
C:\OpenSSL-Win32\bin\openssl.exe genrsa -out developer.key 2048
The following command will generate a certificate signing request
c:\Openssl-win32\bin\openssl req -new -key developer.key -out developer.certSigningRequest -subj "/emailAddress=yourAddress@example.com, CN=John Doe, C=US" -config "c:/OpenSSL-Win32/bin/openssl.cfg"

Go https://developer.apple.com
Member center
Login
Open the iOS Provisioning Portal at https://developer.apple.com/ios/manage/overview/index.action
Select Certificates on the left side, submit the developer.certSigningRequest file to Apple, to generate a valid certificate
After approval (if you're not the administrator of the account), download your certificate
For this example, I'm placing it to C:\TC\keys\ios_development.cer

Step 3: setup the toolchain

Unpack apple-ios.zip, for this example, I'm placing it in the C:\TC\apple-ios directory

Step 4: compile and link your first program

The example application is an UIAlert test application
Unpack sample.zip for this example, I'm placing it in the C:\TC\sample directory
Run build.bat

The build batch file is just an example, how to use the compiler, certainly you will have to set the compiler flags and create Makefiles or use an other build system.

Step 5: create your first IPA

generateIpa.bat will use the the build directory to create the IPA
The configuration for the application is in the build/localipa.conf file
It defines a lot of parameters, but you only need to worry about the appId.
To have the Sample running on a device, change the appId to match your provisioning profile.
You don't need to, but might want to edit the info.plist and change the string for the CFBundleIdentifier to match the appId.
This variable is responsible for the separation of the applications on the devices. Two applications with the same CFBundleIdentifier will overwrite each other during install.
Run generateIpa.bat

Step 6: install your IPA

To install the application, you can use iTunes, or we've provided a closed source installer binary.
Either way, you have to have iTunes installed, to upload the IPA to your device. Please note, that the iosconnect application is still under development.
Run installIpa.bat

Log

You can use the iPhone Configuration Utility to read the NSLog output of the device:
http://support.apple.com/kb/DL1466

That's all folks!

If everything happened Ok, you should have a hello world application running on your iPhone or iPad.
There are still lots of stuff to do with this toolchain, that's only the beginning.

You have any issues? Ask below, or contact us through email!
You managed to use it? Let us know, so we know our work worth the trouble :)

Latest Questions
Q ≡ Use without ceritificate
Q ≡ How use udid to send ipa file to spcific device
Q ≡ installipa error
Q ≡ How do you download the .bat files like the createipa.bat and those files?
Q ≡ generateIpa err :not a MachO binary
Q ≡ codesign windows implementation
Q ≡ Can you do this without a mac?
Q ≡ Can you do this without a mac?
Q ≡ Support for Cocoa and Cocoa Touch?
Q ≡ Can you use IPAGenerate to sign OSX apps?
Q ≡ how to programming??
Q ≡ Do you support arm64 binaries
Q ≡ Xcode CLI?
Q ≡ Api for ipa sign
Q ≡ Just ipa sign
Q ≡ Can we use iTCh even if we doesn't have a developer account ?
Q ≡ How to add data files?
Q ≡ Swift
Q ≡ arm64
Q ≡ Where is the Bat file??
Q ≡ Error when building sample
Q ≡ Pack deb file
Q ≡ Generate IPA error
Q ≡ Run build.bat error
Q ≡ Update
Q ≡ How do use the tools?
Q ≡ XP error
Q ≡ generating IPA step...
Q ≡ Java Error And Theos Quiz
Q ≡ XIB compiler
Q ≡ Show demo
Q ≡ Can't build app
Q ≡ Won't install
Q ≡ Certificate generation issue
Q ≡ Where is the debugger?
Q ≡ Can I submit with this to App Store?

Add new Question
iTCh - iOS tool chain for Windows 2013

Request download links