Source Control and IOS/Android builds.

Hi,

I am confused on how to handle (or even if I need to) differences (not scripting) in IOS and Android builds when using source control. I have no experience with source control where you need to deploy to different platforms.

A Little History:
At this stage I am not using any official source control, all I have done is make complete backup copies of my game every once in a while (enough so that I don’t get severely depressed if I need to roll back). I have done all my development on Windows, and have done this till I was satisfied that I had a stable game. At this stage I moved my game to my Mac so that I could add what I think is platform specific changes (in my case ad mediation - namely HeyZap).

I think HeyZap needs to be installed separately on each platform (my assumption) as there are specific platform related changes that they suggest within the installation. e.g. moving files to IOS specific directory (IOS only), while making Android specific changes like “Assets > Play Services Resolver > Android Resolver”. I didn’t want to make both Android and IOS changes within windows development as I was not sure if it would mess up my compiles.

I do not have any platform specific code in my scripts so I have no need to use anything like #if UNITY_CLOUD_BUILD within my code**.**
My Questions:

  1. How would source control overcome my situation? Or do I not have a situation (i.e. my assumptions were incorrect)?
  2. Is it only IOS and Android scripting differences that I have to worry about?

I hope I have explained this well enough, if you have any questions let me know as I will be checking this thread quite often over the next few days.

Any help here would be appreciated, even if its your experiences using source control while deploying to different platforms.

Regards,

John.

Any good third-party plugin should be able to exist in the project regardless of the active build target, e.g. iOS or Android. Why do you think you need separate installations?

FWIW I’ve not used HeyZap.

1 Like

I am not sure why I think I need separate installations, paranoia maybe? Thanks for the feedback, I think I will trust the 3rd party plugins and just go for it.

I’m not sure why you think version control is a solution to this particular problem.

That said, Unity provides some tools for this. For DLLs you can select what target platforms they’re used on. In scripts you’ve got conditional compilation (“#ifdef UNITY_YOURPLATFORM” and so on). So you’ve got control for platform-specific stuff on your end, and any decent asset should absolutely be using those to make your life easy from their end.

But get on to version control anyway. It doesn’t solve this problem, but it solves plenty of others.

2 Likes