PDA

View Full Version : iOS development using Windows toolchain




vrenken
Aug 2, 2010, 06:30 AM
Hello,

is there anybody who can tell me if iOS development using a Windows based compiler toolchain is bound to cause legal problems?

I do not mean running applications on jailbreaked devices, but am just curious if people are allowed to compile iOS applications against the Apple SDK this way.

Any thoughts?

Greetings from the rainy Netherlands,

Peter Vrenken



robbieduncan
Aug 2, 2010, 06:49 AM
The iPhone SDK Agreement that every developer must agree to before downloading the SDK states (section 2.2 (a))


Install a reasonable number of copies of the SDK on Apple-branded computers owned or controlled by You,...


So you may no install the SDK (or any part of it including the Cocoa Touch libraries etc) on a non-Apple computer. If you are running Windows on a Mac then you would be OK here.

If someone else has given you a copy of the SDK then they are in breech of the agreement they signed (or someone is) (Section 2.5):


You agree not to rent, lease, lend, upload to or host on any website or server, sell, redistribute, or sublicense the SDK, in whole or in part, or to enable others to do so... You agree not to install, use or run the SDK on any non-Apple-branded computer, or to enable others to do so. You may not and You agree not to, or to enable others to, copy (except as expressly permitted under this Agreement), decompile, reverse engineer, disassemble, attempt to derive the source code of, modify, decrypt, or create derivative works of the SDK or any services provided by the SDK, or any part thereof...If You breach any of the foregoing restrictions, You may be subject to prosecution and damages.

So basically you can only install the SDK or any part of it on an Apple computer. You cannot derive split out parts of the SDK (like the Cocoa Touch libraries) to create a derivative work so this would, in my eyes, prevent the creation of a toolchain that linked to the required libraries on Windows. If you do Apple may pursue you for damages in court.

So it's not illegal: there is no law against it. But it is breaching a contract and Apple can pursue you or anyone else who helps you (if they have a similar contract with Apple) through the courts for breach of contract and damages.

In short: I'd not recommend it.

vrenken
Aug 2, 2010, 07:24 AM
So one legal solution would be to execute the toolchain on a emulated Windows that runs on a Mac?

robbieduncan
Aug 2, 2010, 07:29 AM
So one legal solution would be to execute the toolchain on a emulated Windows that runs on a Mac?

Possibly, although only if such a toolchain could be achieved without breaking the no "decompile, reverse engineer, disassemble, attempt to derive the source code of, modify, decrypt, or create derivative works of the SDK". I would consider any non-Apple toolchain that used any code, libraries etc from the SDK would be against this. Again it's not illegal to do the things prohibited by this agreement. There is no law passed specifically for the SDK. You would simply be in breach of contract and standard contract law would apply.

I see no reason to even attempt this on a Mac: just use Mac OSX and XCode.

MorphingDragon
Aug 2, 2010, 07:30 AM
So one legal solution would be to execute the toolchain on a emulated Windows that runs on a Mac?

Yes, but wouldn't that be pointless?

vrenken
Aug 2, 2010, 07:56 AM
I am doing some research on if it is possible to develop iOS applications using Visual Studio.
Call me nuts, but imho it would really be nice to develop cross platform applications using a single IDE.

At the moment it seems to me that it is not required to change the SDK in any way, but i have to admit my knowledge on the subject is rather limited (yet).

MorphingDragon
Aug 2, 2010, 08:03 AM
I am doing some research on if it is possible to develop iOS applications using Visual Studio.
Call me nuts, but imho it would really be nice to develop cross platform applications using a single IDE.

At the moment it seems to me that it is not required to change the SDK in any way, but i have to admit my knowledge on the subject is rather limited (yet).

The closest thing for what you're asking for is Mono.
http://monotouch.net/
That of course, limits you to C#.

vrenken
Aug 2, 2010, 08:21 AM
ok,

but as far as i know, Mono does not run on the iPad/iPhone.
If i remember correctly, it isn't even allowed to run virtual machine-ish applications on these devices.

However, it would be really cool. :D

But until that time i'll bet my money on Objective-C development using Visual Studio...

robbieduncan
Aug 2, 2010, 08:40 AM
but imho it would really be nice to develop cross platform applications using a single IDE.

In what way will this result in a cross platform application? Any iOS library linking will result in an iOS only application...

vrenken
Aug 2, 2010, 08:59 AM
Hmz,

i was just reading some documentation on the MonoTouch website, but as stated in the first reply: Doesn't the iPhone SDK Agreement disallow using MonoTouch on non Mac hardware?

robbieduncan
Aug 2, 2010, 09:00 AM
Hmz,

i was just reading some documentation on the MonoTouch website, but as stated in the first reply: Doesn't the iPhone SDK Agreement disallow using MonoTouch on non Mac hardware?

In theory I would say yes. It all comes down to whether you really think Apple will take you to court or not.

firewood
Aug 2, 2010, 12:22 PM
is there anybody who can tell me if iOS development using a Windows based compiler toolchain is bound to cause legal problems?

I do not mean running applications on jailbreaked devices, but am just curious if people are allowed to compile iOS applications against the Apple SDK this way.

The gcc and llvm compiler tools are open source. Apple's Objective C runtime, UIKit frameworks, and codesigning tools (etc.) are not.

You'd have to consult an attorney in your jurisdiction about whether using the latter against Apple's license terms, and/or doing a complete clean room rewrite of all the libraries plus a reverse engineering of the codesigning process, would cause you legal problems.

If using the Mac UI causes you to go blind or somesuch, one possible alternative is to create a Visual Studio front end under Windows that actually runs Xcode on a Mac (remote Xserve, VMWare host, etc.) to produce binaries.

vrenken
Aug 3, 2010, 01:18 AM
ok,

thanks for all the replies.

Could a iPad/iPhone be setup in such a way that it can be used as a compiler platform?

If i am correct these devices are true Apple branded computers...

i've been doing some reading, and think it should be feasible using SSH and GCC. The only thing i do not know is if it is possible to use the SDK on an IOS device itselve.


I am developing a Visual Studio Package that allows iOS specific files to be managed from within a Solution. The same way as for C# and other languages.
A compile could be executed on another machine using SSH and GCC actions.

At the moment only the Objective-C project system part has been finished (see attachements)

Greetings,

Peter Vrenken

robbieduncan
Aug 3, 2010, 01:55 AM
The only thing i do not know is if it is possible to use the SDK on an IOS device itselve.

Nope, not possible.

vrenken
Aug 3, 2010, 03:11 AM
Not even using a GCC compiler that uses sources and headers from a mounted DMG file?

Hmz, that sounds pretty cool coming from a Windows oriented person... :rolleyes:

robbieduncan
Aug 3, 2010, 03:19 AM
Not even using a GCC compiler that uses sources and headers from a mounted DMG file?

Hmz, that sounds pretty cool coming from a Windows oriented person... :rolleyes:

iOS devices are ARM. The normal SDK usage is to build in Intel (for Intel) and test in the simulator. Once that works you cross-compile to ARM. Without having access to the SDK already and being able to put an app on there (so paying Apple $99) you can't get anything like GCC onto the device. Even if you can you'll need a whole lot of toolchain to make it work.

Other things you won't have: remote debugging, remote Instruments.

vrenken
Aug 13, 2010, 04:53 AM
Thanks for all replies and information.

I still think it is a Nice experiment to create a toolchain that uses Visual Studio as a IDE and a iOS device or Apple desktop as compiler platform.

Future progress of the research into this matter can be found here (http://www.petervrenken.nl/visual studio/).

Greetings,

Peter Vrenken