Easily build different versions of your game on multiple platforms in one click!

Example: With one click, Advanced Builder can build a Demo and Paid version of your game on 4 different platforms (that’s 8 builds in one click).

Screenshots

Advanced Builder Screenshot 1
Advanced Builder Screenshot 1
Advanced Builder Screenshot 2
Advanced Builder Screenshot 3
Advanced Builder Screenshot 4
Advanced Builder Screenshot 5
Advanced Builder Screenshot 6
Advanced Builder Screenshot 7
Advanced Builder Screenshot 1 Advanced Builder Screenshot 2 Advanced Builder Screenshot 3 Advanced Builder Screenshot 4 Advanced Builder Screenshot 5 Advanced Builder Screenshot 6 Advanced Builder Screenshot 7

Testimonials

Has been a huge help to my workflow
It used to take me over an hour to build, sign the release, upload to Steam, etc. Now I just click a button and sit back and relax.

Cubic_Creo (on the Unity Forum)

Life saver!
Its been a life saver here at work, used it in all of our projects now, and really saved us a headache with one project we recently released (configuring both iOS and Android for two different regions when uploaded to the stores).

Fantastic tool!
This tool is really great!
It accelerates the build process for multiple platforms and release types.
It’s very nice implemented and you’ve got a great bunch of flexibility over the build pipeline (like include/exclude scenes for certain builds).
The author is very friendly and helpful!

Helpful!
Excellent for helping out with multi-platform builds. Dev is extremely helpful

Great Price, Great Asset.
As a developer who publishes in many place’s at a time, this asset popped out to me, and it’s been a breeze so far to use. The price is basically a steal for what it offers, I hope to see more updates in the future!

Useful tool and great support
A great tool, really useful for people like who deploy and test almost daily in lots of platforms. Also the support is super fast. I got my email answered in less than an hour.

Introduction

This tool allows you to easily build different “versions” of your game on multiple platforms.
We’re going to rapidly describe the different parts of the tool on this page. You can launch the interface by going to “Window/PygmyMonkey/Advanced Builder” in Unity.

Product Parameters

Here you will define the global parameters for your product.
Currently you can only specify the bundle version, but more will be added in future releases.
Thanks to AdvancedBuilder, you can access the bundle version of your product during gameplay using AppParameters.Get.bundleVersion (something you can’t do with the current Unity API).

Release Types

Let’s say your game have a Free and a Paid version (or Demo and Full).
Before, you would have to change the bundle identifier, product name and more before each build, and, if you needed to know which version you were on during runtime, you would have to set (and update) a boolean somewhere in your code to store this information.
Now, you can just add two release types, define the bundle identifier and product name for each, click on build and you will have two executables for your product. Then, during runtime, you can retrieve the release type using AppParameters.Get.releaseType or use default defines such as #RT_RELEASE.

Platforms

In this section, you can add all the platforms your product supports, and also select some per-platform parameters such as:

Distribution Platforms

This is very useful if you want to publish your product to different sub-platforms:

  • For Android, you may want to deliver your product through Google Play, but also the Amazon Appstore and maybe the Samsung AppStore. Well, you just have to add these 3 distribution platforms and Advanced Builder will automatically build 3 different builds for each of these sub-platforms.
    This is handy if you want to support In-App purchase for example, because for that, you need to call the IAP process from Google Play if users downloaded from the Google Play, and same thing for the Amazon Store. As there is no way of determining if a user downloaded your product through Google Play or Amazon Store, you can simply use 2 different APKs, and using the variable AppParameters.Get.distributionPlatform, you can call the IAP method from the correct platform.
  • For the Web, you may want to have different builds, for your own website and for Kongregate.
  • Same thing for Windows, maybe you want a version that you will sell on your website, and another that you will sell on Steam (and do different things in the code with it).

Textures Compression

(used by Android and BlackBerry)
If you use Generic, it will build using the default texture compression.
Let’s take Android for example. If you want, you can use different textures compression that will generate multiple APKs, that you will upload to Google. The Play Store will then automatically deliver the correct APK depending on the device downloading your product. With this, users will have an optimised version with texture compressions adapted to their device

Architectures

Using this you can simultaneously build for :

  • Windows x86 and/or Windows x64
  • OSX x86, OSX x64 and/or OSX Universal
  • Linux x86, Linux x64 and/or Linux Universal
  • Android x86, ARMv7 and/or FAT (ARMv7 + x86)
  • iOS
  • tvOS
  • WebGL
  • Windows Store

Advanced Settings

Build folder path

Here you can define the destination of your builds. By default it will be placed in /Builds/BUILD_DATE/RELEASE_TYPE/PLATFORM/DISTRIB_PLATFORM/ARCHITECTURE/, some examples:

  • /Builds/13-12-16 10h23/Dev/iOS/MyProduct/
  • /Builds/13-12-16 10h23/Dev/Android/Google Play/MyProduct – Generic.apk
  • /Builds/13-12-16 10h23/Dev/Android/Amazon App Store/MyProduct – Generic.apk
  • /Builds/13-12-16 10h23/Beta/Windows/Windows x86/MyProduct.exe

You can personalize the build destination by modifying the build folder path and using, or not, the different parameters at your disposal:

  • $BUILD_DATE
  • $RELEASE_TYPE
  • $PLATFORM
  • $DISTRIB_PLATFORM
  • $ARCHITECTURE
  • $TEXT_COMPRESSION
  • $PRODUCT_NAME
  • $BUNDLE_VERSION
  • $BUNDLE_IDENTIFIER

Custom settings

Custom Build script

You can create a custom script that allow you to do actions before and after each build.
This script needs to implement the interface IAdvancedCustomBuild and be placed in an Editor folder.
You will have to implement the 6 methods OnEveryBuildStart, OnPreBuild, OnPostBuild,
OnEveryBuildDone, OnPreApplyConfiguration and OnPostApplyConfiguration.
Most methods have different parameters that will tell you information on the build that is currently processing, allowing you to do different things based on the platform, the release type, the distribution platform, the platform architecture and the texture compression.
You can find examples of custom build scripts in “Example/Editor/”.

Global custom defines

You can specify custom scripting define symbols that will be used in your project. For example, you could use DEBUG and PRINT_ERRORS defines by filling the global custom define field with DEBUG;PRINT_ERRORS
With that, in your code, you could use precompiled conditions such as #if DEBUG etc…

Build options

Let AdvancedBuilder overwrite scenes

When you toggle this, each configuration will override the EditorBuildsSettings scenes.

Let AdvancedBuilder overwrite defines

When applying a configuration, you can chose not to overwrite the current custom defines.

Project Configurations

This section will list all the configurations available based on what you used in Release Types, and Platforms sections. You then add the ones you want so they can be used with the batch build.

You can then click on each configuration to see the different information associated with it.
You’ll see :
– a field so you can specify the name of the configuration if you need it (optional)
– a list of default defines that are automatically created based on the release type you created,
the platform, the platform architecture and the texture compression of the configuration
– a field where you can specify your custom defines associated with this configuration, so for each and every build, you can have a specific custom define. More information can be found in the Unity documentation.
– a list of scenes you want to build for this configuration
– You’ll also see all the information associated with this configuration
– You can also directly build this particular configuration, pressing the Build button
– And finally, the “Apply this config” button, that is very useful if you want to test a
configuration of your game directly in the Editor. It will apply all the parameters specified in
this configuration directly in Unity.
Please note that we do not switch platform when you select a configuration, but only update the AppParameters data and scripting define symbols associated with the configuration. So everything in your code relying on AppParameters and define symbols will work, but using Unity own scripting define symbols as #if UNITY_ANDROID will work only if you switch platform yourself. Using “Apply
this config”, you’ll be able to test everything in your code using the parameters in AppParameters and custom define symbols so you can test how your game will react on different configurations without the need to switch platform.

Using Unity Free:
You can use this window to manually select the configuration you want to use before manually building each version of your game. So you’ll have to click on the ‘Apply this config’ button to set the configuration you want, and then build manually every configuration. At the end of each build, you just select another configuration and build manually again etc…
Please, keep in mind that pressing ‘Apply this configuration’ will apply all the configuration parameters to your current project, but will NOT switch platform. So obviously, when you manually build with Unity, don’t forget to select your platform before pressing the Build button.

Product Parameters

In this section, you can batch build all of the configurations you previously selected, in a single click. Make sure to check the ‘Warnings & Errors’ section to see if everything is ok…

Warnings & Errors

This section will tell you if something is wrong. So pay attention before building!

How to update Advanced Builder

If you are upgrading from a version older than 1.4.0, please follow these small steps

  1. Save the file “AdvancedBuilder/Editor/AdvancedBuilder.asset” somewhere,
  2. Close the AdvancedBuilder window,
  3. Remove entirely the AdvancedBuilder folder,
  4. Import the new version of AdvancedBuilder,
  5. Put back the file you saved, inside the folder “PygmyMonkey/AdvancedBuilder/Editor”,
  6. Open the AdvancedBuilder window and you’re good to go 🙂

Normal Procedure

  1. Close the Advanced Builder window
  2. Delete everything under the ‘AdvancedBuilder’ folder from the Project View, EXCEPT the file “/AdvancedBuilder/Editor/AdvancedBuilder.asset”
  3. Import the latest version from the Asset Store

Using batch mode with command line arguments

Unity batch mode allows you to launch Unity via a command line instruction and perform builds without having Unity opened. It allows you to perform automated builds on a production computer for example, building your app every x hours after performing a version control update etc…

You can read the documentation right here: http://docs.unity3d.com/Manual/CommandLineArguments.html
Then, you just need to open Unity once, configure Advanced Builder however you want, and use the following syntax with the command line:

PATH_TO_UNITY_INSTALLATION/Unity -quit -batchmode -projectPath “PATH_TO_YOUR_PROJECT” -executeMethod PygmyMonkey.AdvancedBuilder.AdvancedBuilder.PerformBuild​

It will do exactly the same thing than pressing the “Perform a total of x builds” button.

Moving the 'PygmyMonkey/AdvancedBuilder' folder

If you don’t want to have a folder called PygmyMonkey at the root of your project. You can easily move the PygmyMonkey folder (containing the AdvancedBuilder folder) to wherever you want in your project (of course, as long as it’s in the Assets/ folder…).

Dev / Beta / Release

Let’s say you have a game that you want to release for Android, iOS and OSX UniversalAnd you want to have:
– a dev version, so you can test your game without erasing the release version on a device (because of the same package name)
– a beta version, that you will send to some people
– a release version, that will be released to the public

1. Release types
You will just add 3 release types (dev, beta and release) each having a different bundle identifier so you can have the 3 different apps on a single device (for Android & iOS).

2. Platforms
Then you will add Android, iOS and Mac platforms.

3. Architecture
For the Mac platform, you will only select OSX Universal.
You will now have a total of 9 builds ready to go:
Dev: Android, iOS & OSX
Beta: Android, iOS & OSX
Release: Android, iOS & OSX

You just need to add all the configurations in the ‘Project Configurations’ section and when your game is ready, just click on the “Perform a total of 9 builds” button.

That’s it!

BONUS
At runtime, you can then use if (AppParameters.Get.releaseType.Equals(“Dev”)) to only call some debug methods, or send some stats to your webserver.
You could (and should) also use precompiled symbols such as #if RT_DEV.

Don’t forget you can use the custom build script, to do really anything before and/or after each build.

Demo / Full

Now let’s say you’re making a game for iOS only and you want a Demo and Full version.

1. Release types
You will just add 2 release types (demo and full) each having a different bundle identifier so you can have the 2 different apps on your iOS devices.

2. Platforms

Then you will only add the iOS platform.

You will now have a total of 2 builds ready to go:
Demo: iOS
Full: iOS

You just need to add all the configurations in the ‘Project Configurations’ section and when your game is ready, just click on the “Perform a total of 2 builds” button.

That’s it!

BONUS
At runtime, you can then use if (AppParameters.Get.releaseType.Equals(“Full”)) to allow users to access different parts of your game.
You could (and should) also use precompiled symbols such as #if RT_DEV.

If you’re using a custom build script, you could also, before each build, change/remove some GameObjects from a scene, or anything you want in the OnPreBuild method if the release type is Demo.

You can create a custom script that allow you to do actions before and after each build.
This script needs to implement the interface IAdvancedCustomBuild and be placed in an Editor folder.
You will have to implement the 6 methods OnEveryBuildStart, OnPreBuild, OnPostBuild,
OnEveryBuildDone, OnPreApplyConfiguration and OnPostApplyConfiguration.
Most methods have different parameters that will tell you information on the build that is currently processing, allowing you to do different things based on the platform, the release type, the distribution platform, the platform architecture and the texture compression.
You can find examples of custom build scripts in “Example/Editor/”.

Set Android Password

Example of a custom build script that will set your Android keystore passwords so you don’t have to enter them manually every time.

WARNING If you’re using this method, this means your Android password is stored in clear text inside this file!
This file will not be part of the final binary (build) because this file is inside an Editor folder, BUT it will be available to anyone working with your source code, and will be commited to your versioning file system (if you use one).
So if you don’t want your password to be seen by others having access to this file. Do not use it 🙂

// Callback method that is called before each build
public void OnPreBuild(Configuration configuration, DateTime buildDate)
{
    if (configuration.platform.getPlatformProperties().platformType.Equals(PlatformType.Android))	
    {
        // Here is the keystore file that you normaly select via the file browser using the "Browse Keystore" button in PlayerSettings
        // If you have the keystore file inside this Unity project, simply set: "Assets/MyFolder/MyKeystore.keystore"
        // If the keystore file is outside this Unity project, you have to specify the full path, example:	
        // Mac: "/Users/xxx/Projects/Assets/Other/mykeystore.keystore"
        // Windows: @"C:\Projects\Assets\Other\mykeystore.keystore"
        PlayerSettings.Android.keystoreName = "FULL_PATH_TO_KEYSTORE_FILE";

        // Your Android keystore file password
        PlayerSettings.Android.keystorePass = "KEYSTORE_PASSWORD";

        // The name of the alias in the keystore file
        PlayerSettings.Android.keyaliasName = "KEY_ALIAS_NAME";

        // The password for the alias
        PlayerSettings.Android.keyaliasPass = "KEY_ALIAS_PASSWORD";
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
}

// Callback method that is called after each build
public void OnPostBuild(Configuration configuration, DateTime buildDate)
{
    if (configuration.platform.getPlatformProperties().platformType.Equals(PlatformType.Android))
    {
        PlayerSettings.Android.keystoreName = null;
        PlayerSettings.Android.keystorePass = null;
        PlayerSettings.Android.keyaliasName = null;
        PlayerSettings.Android.keyaliasPass = null;
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
}

public void OnEveryBuildDone()
{
}

Using different icons for each build

Example of a custom build script that will let you define the icons to use before each build. It’s a small “hack”, but it works great 😉

Using the OnPre/OnPostBuild methods, you can use the sample code below, and adapt it to your needs.

The PlayerSettings.SetIconsForTargetGroup API takes the BuildTargetGroup and an array of texture2D of all the icon sizes.
The thing is, you have to specify the exact texture array size for each BuildTargetGroup, and the size is not the same for Android or iOS for example…

So what you can do, is first get the sizes for a platform using PlayerSettings.GetIconSizesForTargetGroup(targetGroup); once you have all that, you put your icons in a folder, with the name MY_ICON_XX where XX is the size.

private static void AssignPlayerSettingsIcons(BuildTargetGroup targetGroup)
{
    int[] iconSizeArray = PlayerSettings.GetIconSizesForTargetGroup(targetGroup);
    Texture2D[] iconArray = new Texture2D[iconSizeArray.Length];

    for (int i = 0; i < iconSizeArray.Length; i++)
    {
        Texture2D iconTexture = AssetDatabase.LoadAssetAtPath("YOUR_ICON_PATH/MY_ICON_" + iconSizeArray[i] + ".png", typeof(Texture2D)) as Texture2D;

        if (iconTexture != null)
        {
            iconArray[i] = iconTexture;
        }
        else
        {
            Debug.LogError("Error, could not find icon with size : " + iconSizeArray[i]);
        }
    }

    PlayerSettings.SetIconsForTargetGroup(targetGroup, iconArray);
}

Version 1.6.3 - July 13, 2018

  • NEW Added back the FAT architecture (ARMv7 + x86) for Android.

Version 1.6.2 - June 19, 2018

  • NEW Now compatible with Unity 2018!,
  • NEW Added settings to remove spaces from the build path.
  • WARNING If you’re building for Android and are upgrading to Unity 2018.1, you will need to ‘reset’ the platform architectures to add support to the new ARMv64 architecture. Just click on the ‘Reset architectures” button under the Android platform section.

Version 1.6.1 - December 15, 2017

  • NEW Added option to enable headless mode on Linux (in the configuration section),
  • NEW Added two callbacks OnPreApplyConfiguration/OnPostApplyConfiguration that are trigger at the beginning and at the end of applying a configuration (at build time, or when you click on the ‘Apply this config’ button in the configuration section of the Advanced Builder window).

Version 1.6.0 - December 6, 2017

  • NEW Minimum Unity version is now Unity 5.6
  • NEW Added a custom build callback (OnEveryBuildStart) that is called at the beginning of the first build,
  • NEW Now compatible with Unity 2017,
  • NEW Remove every compatibility check with things < Unity 5.6 (Blackberry, WebGL…),
  • UPDATE Windows x64 is now the default over x86,
  • UPDATE Reactivated the ability to create an eclipse project for Android builds,
  • FIX Fixed issue with setting custom scripting define symbols.

Version 1.5.4 - December 19, 2016

  • NEW Added buildNumber to the Product Parameters section that will automatically increment with each build! You can access it at runtime if needed via AppParameters.Get.buildNumber
  • UPDATE configuration.getBuildDestinationPath now takes productParameters as the last parameter, before that, it was productParameters.bundleVersion.
  • FIX Fixed Unity 5.5 errors caused by obsolete BuildTargetGroups when building.

Version 1.5.3 - October 5, 2016

  • FIX Advanced Builder window being laggy…

Version 1.5.2 - September 14, 2016

  • FIX Fixed automatically finding the Advanced Builder folder on Windows.

Version 1.5.1 - September 12, 2016

  • FIX Removed Windows Phone 8 support starting Unity 5.4 because Unity stopped supporting it.
    You’re supposed to use WSA instead.
  • FIX Some warnings about Blackberry and WP8 on Unity 5.4

Version 1.5.0 - September 11, 2016

  • NEW Improved the way we get the path to the advanced builder folder (it’s now automatic).
    (Note: So the previous Preferences window is now removed).

Version 1.4.9 - July 27, 2016

Version 1.4.8 - May 6, 2016

  • FIX Really fixed issues with Unity 5.4…

Version 1.4.7 - May 2, 2016

  • FIX Fixed issues happening with Unity 5.4 (Removed Blackberry and WebPlayer platforms as Unity no longer support them)

Version 1.4.6 - Mar 21, 2016

  • FIX Fixed issue that was happening when you added a release type.

Version 1.4.5 - Mar 4, 2016

  • NEW Added OnEveryBuildDone() callback to the custom builds, which is a callback triggered when all the builds are done.
  • NEW Added support for tvOS platform.

Version 1.4.4 - Nov 29, 2015

  • NEW Added the ‘Let AdvancedBuilder overwrite defines’ option to Build options. When applying a configuration, you can now chose not to overwrite the current custom defines.

Version 1.4.3 - Nov 2, 2015

  • NEW Now requires at least Unity 5.0.0
  • NEW Bundle version can now use the format “xx.xx.xx.xx”, instead of just “xx.xx.xx”
  • NEW ‘Append project’ is now available again for iOS. You can chose to append projects in each configuration.
  • NEW You now open Advanced Builder via the menu “Window/PygmyMonkey/Advanced Builder”, it was previously in “Tools/PygmyMonkey/Advanced Builder”.
  • NEW Added support for Windows Store
  • NEW Added $BUNDLE_VERSION and $BUNDLE_IDENTIFIER to set your custom build destination path

Version 1.4.2 - May 23, 2015

  • NEW Added buildDate to OnPreBuild/OnPostBuild events.
  • UPDATE Moved some options (Open build folder after build, Dev build, Autoconnect profiler, Allow script debugging, Autorun) to configurations, so you can set them for each configuration.

Version 1.4.1 - March 23, 2015

  • NEW You can now reorganize the scenes you selected for each configuration.
  • NEW You can now decide if you want to let Advanced Builder decide which scenes are build in the ‘AdvancedSettings’ section.
  • NEW You can now set a custom file name for your build (in addition to the build folder path).
  • NEW Added $TEST_COMPRESSION and $PRODUCT_NAME constants for custom build folder path and custom file name.
  • FIX Android bundle version code if you were using FAT/x86/ARMv7.

Version 1.4.0

  • WARNING IF YOU ARE UPGRADING FROM A VERSION OLDER THAN THIS ONE (1.4.0), PLEASE FOLLOW THE STEPS DESCRIBED IN “How to update Advanced Builder” at the bottom of the Get Started page.
  • NEW You now open Advanced Builder via the menu “Tools/PygmyMonkey/Advanced Builder”, it was previously in “Windows/Advanced Builder”.
  • NEW Changed all the namespaces from “com.pygmymonkey.tools” to “PygmyMonkey.AdvancedBuilder”.
  • NEW Moved the entire “AdvancedBuilder” folder inside a “PygmyMonkey” folder.

Version 1.3.4 - Feb 20, 2015

  • NEW Added platform architectures for Android. You can now automatically build for ARMv7, x86 (Intel) or FAT (ARMv7 and x86).

Version 1.3.3 - Feb 13, 2015

  • NEW Added support for Unity5.
  • NEW Added WebGL support.

Version 1.3.1 - Feb 10, 2015

  • NEW You can now manage the scenes you want to build per configuration.

Version 1.3.0 - Feb 8, 2015

  • NEW Added configurations. You now have a list of configurations defined by all the release types, platforms, platform architectures, distribution platforms and texture compression you selected. With each configuration, you can see all the build info, directly build a configuration and apply a configuration to the UnityEditor to test your configuration directly in the Editor without the need to build or switch platform.
  • NEW Add support for custom compilation defines. Now you can define your custom defines for each configuration. There is also some default defines created by AdvancedBuilder based on the parameters of the configuration.

Version 1.2.6 - Oct 6, 2014

  • NEW Added a custom build example showing you how you can chose different scenes depending on the release type you’re building.
  • NEW Added a custom build example that will automatically set your Android keystore password.

Version 1.2.5

  • FIX Updated documentation
  • NEW Improved the way ‘Project Configuration’ works, so you can easily try multiple configuration directly in the Unity Editor without switching platforms.
    This update will probably create some errors in your scripts if you were using the AppParameters class and/or custom build scripts.
    – To access data via AppParameters, you will now need to call “AppParameters.Get.DATA” where DATA is the data you want to retrieve (for example, to retrieve the release type, you would call: AppParameters.Get.releaseType).
    – For custom build scripts, the OnPreBuild/OnPostBuild methods now take strings instead of enums as parameters.

Version 1.2.2 - Sept 11, 2014

  • FIX Fix setting configurations using Unity Free

Version 1.2.1 - July 28, 2014

  • NEW In the Advanced Settings section, you can now chose to display an error when you forgot to set your Android Keystore and Alias passwords.
  • FIX Display errors when incorrect name format are set for Distribution Platform and Release Types

Version 1.2.0 - July 03, 2014

  • NEW Added support for Distribution Platforms! (see Get Started for more info)

Version 1.1.1 f1 - July 01, 2014

  • FIX Building for Mac on a Windows machine was disabled by mistake (it’s now possible again)

Version 1.1.1 - June 26, 2014

  • NEW Added a ‘Project Configuration’ window. You can now apply different configuration directly in the Editor to test your game on each of these configurations. This is also useful for people using Unity Free. (see Get Started & FAQ for more info).
  • NEW You can now activate/deactivate platforms you want to support (instead of deleting them)
  • NEW Added warning message if you try to build for iOS on Windows or Linux
  • NEW Added error message if using the same name in different release types
  • FIX Scenes not enabled in the build settings will not be build anymore
  • FIX Custom build methods now use the enums in AppParameters.cs instead of classes

Version 1.1.0 f1 - March 28, 2014

  • FIX Fixed BlackBerry build issue (Unity bug if you have a space in the .bar file name)
  • FIX Fixed InvalidOperationException thrown by Unity Editor GUI after a build operation
  • FIX Fixed iOS build if you had the Facebook Unity plugin in your project

Version 1.1.0

  • NEW Added support for Windows Phone 8
  • NEW Added support for Windows Store 8
  • NEW Added support for BlackBery

Version 1.0.1

  • FIX Display warning and errors even when platforms or release types are not fold out
  • FIX Build date on the build folder was incorrect if the total builds took more than 1 minute

Version 1.0.0 - December 24, 2013

  • Initial release.

Tutorial videos

We will release 1-2 tutorial videos showing how to do specific things with explanations

Per platform parameters

Add the possibility to specify some parameters that will change depending on your release type and/or platform.
This can be use for example to define a different AdmobID or FacebookID (or anything) if you’re building the Free or Pro version of your game etc…

Automated builds

We will add an easy to use bash script that will automatically launch every x hours and perform builds for you in the background.
For example, you could have your computer starting the build process every day at midnight, updating the repository from your master branch on git/mercurial/svn before building.
With that, you could have builds for your game ready every day without having to do anything!

Build report tool

Have a report generated after each build where you can see a lot of usefull information on your build. We will also probably add a custom window that will display all these information with ease of reading.

Build verbose

Add the possibility to add verbose when builds are done, or even have your computer say something when the build is done (Mac only) etc…

Version Updater

Add a simple class that will allows you to check if a user updated the game or installed it for the first time. You could use that to make database migrations between versions for examples, or give coins to users that had an issue with an old version of your game etc…

Custom icons

Allow you to add a small banner on your icon depending on the release type. This is usefull is you want to build a free version of the game for example and you want to add the banner “Free” on the icon. Instead of manually updating the icon before building each version of your game, this will be done automatically!

AndroidManifest and info.plist

Add helper methods that will allow you to easily modify things in your AndroidManifest (Android) and/or info.plist (iOS) before/after builds

Support

FAQ

Can I use Advanced Builder with Prime31 plugins?

Yes, there is absolutely no issue using prime31 plugins, because Advanced Builder generate builds using Unity native build system.

Can I use Advanced Builder with Unity batch mode?

Unity batch mode allows you to launch Unity via a command line instruction and perform builds without having Unity opened. It allows you to perform automated builds on a production computer for example, building your app every x hours after performing a version control update etc…

You can read the documentation right here: http://docs.unity3d.com/Manual/CommandLineArguments.html
Then, you just need to open Unity once, configure Advanced Builder however you want, and use the following syntax with the command line:

PATH_TO_UNITY_INSTALLATION/Unity -quit -batchmode -projectPath “PATH_TO_YOUR_PROJECT” -executeMethod PygmyMonkey.AdvancedBuilder.AdvancedBuilder.PerformBuild​

I use a version control software, what can I add to the list of ignore files?

You can safely ignore the file AppParameters.asset (in PygmyMonkey/AdvancedBuilder/Resources/), this file will just save all the information from your configuration before making each build.
So every time you make a build, the file will change, but other people on your team don’t need to have the same file as you have.

The file AdvancedBuilder.asset (in PygmyMonkey/AdvancedBuilder/Editor/) contains all the different configurations you have created, and it’s a good thing to share that with the people you’re working with. But it’s not absolutely necessary. So if each person need to have their own configurations, you can add it to the list of ignored files.

Will you add support for more platforms?

We currently support Android, iOS, WebPlayer, Windows, Mac, Linux, Windows Phone 8, Windows Store 8, BlackBerry and WebGL. If you need a platform that is not listed here, please contact us!

Why my BlackBerry final file name has its spaces removed?

It’s currently a Unity bug, if you have any space in the name of the .bar file, the build will just fail. So Advanced Builder remove them automatically.

What's the minimum Unity version required?

Advanced Builder will work starting with Unity 5.0.0.

Can I build for iOS using a Windows/Linux computer?

As Advanced Builder uses the Unity API for the build process, and Unity does not allow you to build for iOS on a machine that is not a Mac, building for iOS absolutely require having a Mac.