Now you can.
Thanks to the iOS Build Environment for Windows.
You produce real apps, identical to those that can be produced with XCode (they are not "web apps"). They're iOS 5 (all versions), iOS 4 (all versions) and iOS 3 (starting from version 3.1) compatible, thus deployable on iPhone, iPod and iPads.
You may write your code in Objective-C, but also in C++, in C and ARM assembly as well.
+ NOUVEAU: Remote debugging console! Error messages are streamed live from your device to your PC.
+ Full iOS 5.0.1 support! All the new frameworks are available.
+ New optimized compiler! Compiles faster, more explicit on errors, in some cases the corrections are even suggested!
+ Compile your iPhone apps directly inside Visual Studio (Visual C++ Express is also supported).
+ Generate .deb (Cydia) and .ipa (iTunes) package bundles. Sync with iTunes.
+ Includes 14 examples, among which an improved port of the Wolfenstein 3D game with OpenGL rendering, spatialized audio, 3D models, accelerometer-based movement and fully commented source code (see screenshot here)
All this for only €30 (ar. $40 USD)!
Download an free evaluation version here
The build environnement comprises:
+ An emulation subsystem for Windows mimicking the required Darwin features based on Cygwin
+ A native assembly/C/C++/Objective-C cross-compiler (clang/llvm) and an ARM linker based on GCC
+ A code pseudo-signature generation tool (ldid)
+ A property list editor in binary and XML format (requires the iTunes DLLs)
+ A PNG file normalizer
+ A Visual Studio project creation wizard
+ A remote debugging console
As well as 14 examples, including source code and Makefile, compilable out of the box.
|
In order to download the software, a fixed contribution of €30 (ar. $40 USD) is requested.
You will receive an e-mail containing the download link as soon as your donation will have been committed.
Note: if you don't have a PayPal account, just click on the Continue link at the bottom left of the page, above the bank card logos.
What to do if you don't get the download link e-mail ? If for whatever reason you didn't receive the download link by e-mail once your donation has been committed, please click here and follow the instructions.
Can we try the software for free? To download an evaluation version, click here. This version is limited to 1 launch on a real iDevice for each compiled app. It enables you nevertheless to review thoroughly all the features of the software.
What if you have no credit card nor Paypal account? Maybe you can make a bank transfer directly? Send me an e-mail and I will give you my bank information code. As soon as I receive your donation I will send you the software.
If there was the slightest problem just e-mail me and provide your name, and the date and amount of your contribution. I will help you solve it right away.
The following samples provided with this build environment are available for free (all of them include fully commented source code & Makefile):
Some of these were taken from the Internet (Jonathan Zdziarski, Erica Sadun and Maher Ali) and adapted for our environment.
All these examples now come with a Visual Studio project file (*.vcproj).
HelloWorld - The most basic iPhone application there is. Displays "Hello iPhone world!" in a UIKit window.
GLCube - A simple 3D cube that you can rotate with your fingers. Demonstrates the use of the OpenGL/ES framework and the touch screen capabilities.
DatePicker - Displays a date picker control where a date can be selected between two limits and shows how to retrieve its content.
GPSSample - Displays your location data on screen. Demonstrates the use of the CoreLocation framework and the GPS system.
RotationDemo - Displays a phrase on screen that changes when the device is tilted on its side. Demonstrates the support for device orientation detection in a iOS app.
NavBarDemo - A simple text area with a nav bar on top of it. Shows how to implement a navigation bar in an iOS app.
FlipDemo - A sample that allows to flip the pages of a book, showing how to switch from one view to another in an application. Uses the CoreAnimation framework.
MoviePlayer - This sample plays in streaming a video from the Apple website. Shows how to implement a basic multimedia player.
TableDemo - Displays all files in the default app folder in an editable table view with sections, similar to the contacts list. Shows how to implement an UITableView control.
AVMeter - A nice MP3 player with a vu-meter. Shows how to retrieve noise analysis informations from an AVAudioPlayer object and display them in a custom UIView control.
CoverFlow - A scrollable music album cover flow control example. Subclassed from UIScrollView, these effects use the CoreAnimation framework.
SambaSettings - A system-wide Preferences bundle. Demonstrates how to create a system-wide Preferences bundle that can be integrated in the system's Settings app.
smbtoggle - A simple Samba server toggle for SBSettings. Demonstrates how to build a SBSettings toggle library in pure C.
Note: the Samba server itself is available on Cydia under the name PC Networking.
The following tools provided with this build environment are also available for free:
iOS PNG normalizer - A convenient drag-n-drop tool to convert Apple's non-standard PNG images back to standard, PC-readable images.
Click on an item to expand it:
- Updated the iOS Project Creation Wizard.
- Added a graphical remote debugging console applet.
- Newly created projects now support the streaming of error messages to a remote console on the PC.
- Newly created projects now support the redirection of error messages to a log file.
- Added 9 more examples.
- iOS 5 full support (compatible with the frameworks from the 5.0.1 SDK).
- New compiler (clang/llvm), much faster in replacement of GCC.
- Support for the lightweight threads (blocks) Objective-C syntax.
- Compiler errors are better indicated (a mark is displayed below the first incriminated character).
- Better integration with the IDE (a click on a compiler error line takes you directly to the source code).
- Added the possibility to target a minimal supported iOS version for each project.
- Added the possibility to specify the processor instruction set to use (ARMv6 or ARMv7).
- Rearrangement of the build environment directory layout.
- Added the C++ headers in the Makefiles by default (they had to be explicitly included beforehand).
- Added a drop-list to the Project Creation Wizard to explicitly enable iPad support in newly created apps.
- Fixed an ACL permissions problem that could cause the generation of invalid IPAs on some computers.
- Automatic creation of .deb packages (Cydia) from compiled projects.
- Added the /s command-line flag to the PNG normalizer (idea: Per Andersson).
- Extension of the default Makefile rules in the project creation wizard.
- Automatic creation of IPA packages (app bundles) from compiled projects.
- Modified the build script to support project directory relocation (idea: Jonathan Garrett).
- Corrected a typographic bug in the project creation wizard.
- Installing your apps can now be done directly within iTunes.
- Added support for Visual Studio 2008, 2010 and Visual C++ Express as IDE.
- Basic Objective-C syntax colouring in Visual Studio (settable option).
- Added an iOS project creation wizard that creates Visual C++ (.vcproj) projects.
- Added a script that enables ARM compilation directly in Visual Studio.
- Complete refactoring of the headers tree (implying a substantial save in megabytes).
- Added back missing headers in some frameworks.
- Stripped the multi-architecture code from "fat" Mach-O binaries so as to keep only the ARM code.
- Created universal Makefiles.
- Added a PNG image normalizer to convert the Apple PNG files into standard images readable on a PC.
- Added a rotating OpenGL cube as a sample project.
- Added an elaborate 3D game (Wolfenstein 3D) as a sample project.
- Changed the default install path to avoid write permission problems in Program Files.
- Added the Preferences framework for the creation of applications that integrate themselves into iOS Settings.
- Replaced iCopyBot's PList editor with a non commercial version.
- Added basic and useful practical advices in the compiler prompt window.
- Initial release.
- Unpublished initial version (private use).
Click on an item to expand it:
Sure. It works on all Windows versions since Windows 2000, which means Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 and Windows 7. I create my own iPhone applications on Windows 7.
Yes, it does.
You can do so in 3 different ways, but first your device must be jailbroken.
· Automatically with iTunes: Install AppSync (this Cydia package is hosted on the cydia.hackulo.us repository). Then, just double-click on the app package (.ipa file) to open it in iTunes, and sync.
· Automatically with iFile: Install iFile (Cydia package). Copy your app's .deb file to your device. Open it with iFile and choose Install. Your app icon appears.
· Manually with SSH: Copy the YourApp.app folder created during the build into the /Applications directory on your device, and restart SpringBoard. Your app icon appears.
No, there is no emulator ; testing may be done on the iPhone itself. It's very simple: a little script to update the binary on the phone after each successful compilation, and you get the real experience. Building a phone emulator is illegal anyway, since it implies running iOS in a software sandbox, and that operating system is copyrighted by Apple Inc.
You can run your app inside a debugger on the device itself if you install gdb, the GNU Debugger from Cydia. You can also use all the standard C/C++ file I/O to log your program's activity to a file wherever you want. If you are making a console program, you may use the NSLog() macros that are supported by the iOS SDK. Personally, I do my debug in-situ using logging macros, and I use gdb for the rare bugs that the first method fails to put into evidence.
iOS version <= 4.3.3: fire up Safari on your device and visit http://jailbreakme.com. Click then on the green button and let it go: everything happens automatically.
iOS version > 4.3.3: head up to http://blog.iphone-dev.org/ and follow the instructions.
To send your app to Cydia, it only 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.
While it may be technically possible to sign your app with an official Apple-approved signature on Windows and submit it as is, there is a risk that your final application be rejected - for Apple's app election rules are vastly undisclosed. In order to prevent this, I recommend that you do the final compilation and submission step on a genuine Mac. Meanwhile, all the development process for your app can take place on Windows, especially if it's the work environment you're familiar with.
Indeed. This is the first iOS application I developed. It enables me to have my iPhone permanently in Windows' Network Neighbourhood, so that I can transfer files easily. I can then use it as a storage server, and I have access to the complete filesystem. This app is available now on Cydia under the name PC Networking :)
Before, when a programmer wanted to create apps for his iPhone, iPod or iPad, he was also required to buy a $1500 worth Mac. This was even more aberrant since all programmers obviously already have a computer. Being not disposed myself to buy that an expensive and redundant hardware in order to do exactly the same thing that I was doing everyday on my Windows computer (I am an independent programmer), I managed to build and gather in one single package all the tools needed to compile your iOS applications on Windows. With Visual Studio.
I am an independent IT professionnal and an experienced programmer. If you think your company could hire me, feel free to make an offer. Here is my resume.
"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 with the new framework folders, everything went well and the compilation ended successfully which enabled me to try my audio player project in real conditions."
"Thanks for these additions which give alot more possibilities to your potential users. The idea of a universal makefile is awesome, it removes the need to add the frameworks one after the other."
"Your build environment turns out to be really interesting. Kudos!" -- Louis A.
"Installed and working perfectly on my iphone 4. 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.
If you intend to write a review about this software, please tell me about it, so that I can add the link and your website logo here.