Build on Windows - deploy to iOS. (NEW to Unity!)

Hi all,

I am brand new to Unity. Before I get into the development, I want to be sure I can build and deploy. I appreciate any help. I have looked though the Unity forums (note Answers is down!) and the Google, but can’t find any help.

I have a PC (Windows 10) and a Mac (Yosemite). I want to build on the PC and just use the Mac to build, debug, and deploy to iTunes.

I have an iTunes account. I can build, debug and publish using XCode (and Xamarin on the PC).

My targets will be iOS, Android, and maybe PC.
I am doing this just for fun. No plans to make money!

I can build and run (on an iOS device) from the Mac. I can build and run a Windows app on the PC.

I am using this Unity documentation as reference: Unity - Manual: Build an iOS application

When I build on the PC (iOS target), I am copying the build folder to the Mac and opening it in XCode. When I build that project, I get a Permision denied error (see attached screenshot.)

So, is there a better process for coding on the PC and building on the Mac. If I am on the correct track, can someone help with this error.

1 Like

I don’t think you can even pick iOS as a target on Windows. But that’s okay, you can just do that step on the Mac too. In other words, develop the game within Unity on whatever computer you want, and then open that Unity project on a Mac to build for iOS.

You might find my article on code signing & packaging Windows apps on a Mac to be of interest. Basically, you can do it all on your Mac — build for all targets, including the final Windows code-signing and preparing the installer.

I know it’s not quite what you were looking for, but if you want to centralize your build process as much as possible, it’s an option to consider.

So, you can build the iOS on the PC. see: Unity - Manual: Build an iOS application

Did not try to copy the entire Unity project over to the Mac. Seems a bit of a bad workaround, but can try. Are there any issues opening projects on Windows and Mac? Are they fully compatible?

JoeStrout: while I appreciate your article, I am looking for something much simpler. I much prefer working in Windows.

If anyone is actually coding on a PC and building for iOS on the Mac, please pipe in.

Well that’s new, Unity couldn’t do that before. But that’s why I said “I think”, because a lot about building has changed in the most recent versions.

Anyway at work we routinely have multiple people running the same Unity project, and we have both Windows and Mac computers. Our games are deployed to both iOS and Android.

The only way to build to an iOS device is through Xcode on OS X. So yes, while you can generate the Xcode project on your Windows machine, you won’t be able to do anything with it there.

If you’re determined to create iOS games, it’s worth the investment to buy a cheap Mac Mini or older MacBook Pro to build the way jhocking described. You can still do 99.9% of the work on your preferred platform, but the final compilation must be done from a Mac.

Thanks all for your help. As stated, I do have a mac, I just prefer working on the PC.

I did copy over my sample project and it did load and build just fine.

At a quick glance, it looks like the Mac Unity UI is much cleaner. All the tutorials seem to be done on the Mac too.

fwiw your workflow may be more streamlined if you setup version control for your project. That way you can simply checkout the repository on both machines and thus keep them in sync.

3 Likes

looking at this product not sure

decided to test apps on android devices is much easier. use UCB(Unity Cloud Build) for production and by pass buying a mac. Still it looks like there are points where you need to edit Unity staff with xcode for external things…

1 Like

We’ve been building WIndows/webplayer/WebGL stuff in Unity for the last 4 years on Windows machines and recently wanted to build to IOS too. After playing around copying builds to a low-spec Mac-mini we ended up buying a MacBook Pro (£££) with Parallels 12 on as we needed Visual Studio (we use TFS for source control which isn’t currently supported in Visual Studio for Mac). I can’t believe how well it works - on the Windows 10 Virtual Machine I run Visual Studio and Unity and then build IOS projects which I can then open in xCode on the same machine and publish (it’s truly amazing to finger-swipe/alt-tab between 2 OS’s!). I originally wanted to run Unity on MacOS but I couldn’t find a way to get the unity visual studio plug-in to work that way round. You do need 16GB RAM to have it all running simultaneously though.

I had a hard time with this already. On windows i can get the xcode project, i uploaded it to github, and then i used bitrise.io to build for iOS. They have a very good toolkit to deploy stuff.

1 Like

Cant you run a virtual machine running iOS and XCode, build on your windows pc and extract the build files to XCode in virtualBox? This seems like an easier step, but I wouldnt know if I needed to have Unity installed on my virtualbox iOS machine in order to get Unity remote to work…

In Visual Studio 2015 / 2017 you can currently build C# applications on Windows PC for iOS and can build + deploy directly out to either iOS Simulator or Device through the iMac. I believe you have to install Xamarin Studio to create + configure this “bridge” so PC and Mac can communicate… anyway would be awesome if Unity offered this feature :slight_smile:

Hi BenLevy3,

So finally, you copied your Unity project to Mac and build Xcode project there, right?
Have you found any other method for this problem?

Thanks

Unreal manages this using libraries taken from Itunes app download from the official site, it works flawlessly and generates signed IPA on windows, hoping this could be done the same on unity on windows too.

1 Like

Their docs say otherwise “While building for iOS requires a Mac” at https://docs.unrealengine.com/en-us/Platforms/iOS/Windows

[quote=“JeffDUnity3D, post:17, topic: 603161, username:JeffDUnity3D”]
Their docs say otherwise “While building for iOS requires a Mac” at https://docs.unrealengine.com/en-us/Platforms/iOS/Windows
[/quote]
The PC-only workflow described in this guide requires a pure Blueprint only project. If you wish to use any code in your project, you will also need a Mac to compile the code. You can follow the Building for iOS on Windows page to develop code-based projects for iOS on a PC. ref: https://docs.unrealengine.com/en-US/Platforms/iOS/QuickStart
Used pages:

Note: i didn’t try compiling a mix project (blueprint and c++ so i dunno if docs are outdated or not)
Note: first compilation is slow due to shaders compilation, 2nd and next are quite fast.

The steps for Blueprint only project are these:

  1. install iTunes downloading NOT from the windows store but from apple site
  2. use unreal standalone application which is inside the unreal installation called iPhonePackager: folder is Engine\Binaries\DotNET\IOS this let to create certificate request and KeyPair to use on dev portal to generate Provisioning and certificates.
  3. create certificates on Apple dev portal
  4. use iPhonePackager to import the generated and dowloaded cert and provisioning profile and use them inside the project iOS settings.
  5. build, and get the IPA
  6. Use iPhonePacker tool - third tab voice - to install IPA inside device.

Setup Video: https://www.dropbox.com/s/7m3xymkud8boqcz/unreal_setup.gif?dl=0
Build Video: https://www.dropbox.com/s/os6m022aufydlr0/unreal_build.gif?dl=0

eng. Andrea Leganza
Unity Certified Programmer

I FOUND A WAY! I used macminivault.com which has a free trial

1 Like

Hey I have question I’ve build my game on pc then I’ve copied the all project to my macbook but there is some errors that I can not resolve. So i decided to build the game and publish it to app store. Everything worked fine but my ads on real device doesnt work . And i did everything correctly, right id, followed all the required steps in code, when building the game i turned off enable test mode for ads but they still won’t show. So I was thinking if I build the game on desktop then take the build to my macbook to xcode would that work?