Are any versions of Unity and Unity iPhone cross-compatible

I want to publish a title to Mac and iPhone. Are the recent versions of Unity cross-compatible? Can a project started in the most recent version of Unity be opened in the most recent version of Unity iPhone and visa-versa?

Sorry, at the moment is not possible. For example, the compiler for the Unity iPhone requires that all your data types are strongly typed, thing that you dont need on the Desktop version.

BUT, depending on how you program/organize your project, you should be able to make it run without too much tweaking.

In conclusion the answer is no, you cannot convert an unity iPhone project to a Mac project without tweaking them.

I am currently engaged on a iPhone project and we're planning to do a web version port.

Our approach is doing iPhone version first and then porting the control parts, for that reason we opened an iPhone 1.5.1 proyect on a 2.6.1 Unty 3D and it gave only the normal "class iPhoneInput not found" errors. Even so, we can make a web version from our iPhone proyect in less than an hour ;)

So, you can open an iPhone Unity project on unity 3D, but beware you'll need to make some code changes to make that project compile and work properly.

The other way around (mac to iPhone) is strongly NOT recommended for the same reasons naruse said, strong type management and limited mono support.

Yes, that is certainly possible, although there are a few pitfalls to watch out for. The iPhone unity uses an older version of MONO (.NET) so certain features aren't available, like generics. Unity iPhone is compatible with .NET 1.1 and Pro is compatible with .NET 2.0.

Next, there are a few bugs in the importer of Unity iPhone (also some in Pro) that can result in having a hard time getting a scene working again when moving it over to the iPhone version. Is annoying and time consuming but certainly solvable.

We are using Unity basic, Unity Pro and Unity iPhone Pro for one project (basically I use Pro for developing, the artist I'm working with uses Basic and of course for testing I move things over to iPhone Pro). And, besides the importing bugs it works like a charm.

The reason I work on Pro instead of iPhone is that it makes it easier to import the stuff I get from the artist as there are less risk for problems with importing from Basic to Pro than from Basic to iPhone. Also for quick testing we can build PC (or Mac) versions. To handle the differences in user interface the touch input management code I wrote has some `#ifdef`'s to test if it's the iPhone version or not and if not adds some joystick and mouse code to handle the UI.

To complete the picture, I run PRO on Windows and iPhone on Mac.