Search Unity

Advanced Builder - Manage multiple versions of your game

Discussion in 'Assets and Asset Store' started by PygmyMonkey, Jan 13, 2014.

  1. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306

    Advanced Builder
    Easily manage multiple versions of your game on a lot of platforms.

    Advanced Builder provides an easy way to manage multiple versions of your game on a lot of platforms.
    For example, with one click, Advanced Builder will build a Demo and Paid version of your game on 4 different platforms (that's 8 builds in one click).

    Features
    - Manage multiple versions of your game,
    - Build on multiple platforms in one click,
    - Switch in one click between multiple configurations to test your game in the Editor,
    - Define a clean destination path for all your builds,
    - Add your custom pre/post build script,
    - Distribution platforms (to deal with Google Play, Amazon Store for example...),
    - Use different scripting defines for each configuration,
    - Choose the scenes you want to include in each configuration,
    - Clean C# code.



    Links
    - Available on the Asset Store,
    - Website with full documentation, examples and FAQ.

     
    Last edited: Apr 6, 2021
  2. Demigiant

    Demigiant

    Joined:
    Jan 27, 2011
    Posts:
    3,242
    I tried this plugin, and it definitely deserves 5 stars plus the "fundamental plugin" mark. Once you use it, you'll wonder how you could live without it before. Makes advanced building much easier, doesn't waste tons of your time each time you have to build for different platforms, is very flexible, and saves you from accidental human errors. Fantastic :)
     
  3. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    Looking good! Might be good investment with the current promo, I might just pick it up today... :)

    What's the ETA for future updates, especially App Parameters Distribution platforms?
     
  4. luispedrofonseca

    luispedrofonseca

    Joined:
    Aug 29, 2012
    Posts:
    945
    Is it possible to include specific folders per build?
     
  5. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,240
  6. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Does it have the ability to specify specific defines per build profile? When I say defines those are the ones used in preprocessor directives (#if, #elif, #endif).

    If it is, I don't think it's communicated clearly enough :p
     
  7. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Thanks a lot Daniele!

    I think it'll be available in the second "big" update. I first have to improve some small things, and after that I'll add App Parameters + Distribution Platforms in the next update. I think it'll be available before the end of this month (february) but can't guarantee it :/

    What do you mean to include folders? Can you be a little bit more specific or give an example? Thanks ;)

    By default including/excluding dll in the plugins folder is not supported, but that's why there is the pre/post build callbacks ;)
    You'll have to do that "manually" in code because Unity will take everything in the plugin folder automatically and there is no way (at least none I know) that allows you to define specific DLLs per build.
    In order to do that, you could for example, in the pre build method, move DLLs outside your project folder, and put them back in the post build method.

    Nope, there is no way to do that right now :(
    That's something I deeply want to add to the tool, but I can't find a way to define global defines in C#... I can generate define per scripts, but not globally. If you know how to do that, I'll be more than happy ;)
    Right now, you can target specific build profile via code using AppParameters.CurrentReleaseType.
     
  8. Joe64

    Joe64

    Joined:
    Jun 13, 2012
    Posts:
    9

    Hi,
    this tool looks very interesting, especially now for the price on sale ;-)

    Isn't it this what you are looking for?
    "Platform Dependent Compilation", "Platform Custom Defines"

    In this thread is a discussion about it.
     
  9. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Thanks a lot marvin64!
    I guess I didn't read the doc till the end :)

    Will try to test and implement that as soon as possible!
     
  10. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    I'd sure like to see a comparison of Advanced Builder and Multiplatform Toolkit (which I already bought)
     
  11. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    Thanks for the answers....

    One more Q: I think current version only supports regular Windows builds, will it (or currently does) also support Windows Phone 8/Windows Store (and BlackBerry)?
     
  12. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hi TokyoDan,

    Sorry but I've never used Multiplatform Toolkit before so I can't really tell you. But from the look of it, it seems that Advanced Builder is more build specific, meaning we concentrate all of our effort on the build process and dealing with multiple versions of your game in code, and Multiplatform Toolkit seems to do a lot of (cool) stuff.
    We're trying to be really specific about solving the issue of managing multiple versions of your game on multiple platforms, but as a configuration, not with tools that helps you do that inside your scene etc...

    No problem!
    So yes, current version support regular Windows builds, and WP8 is in the process.
    The issue with BlackBerry is that we've never developed for this platform and do not want to release something that could not work.
    If you want, we can exchange a little bit on supporting these platforms via PM so you can have that before anyone and it'll be available in a future update ;)
     
  13. mimminito

    mimminito

    Joined:
    Feb 10, 2010
    Posts:
    780
    Hi,

    First off thanks for a great product, I can see it being very powerful in the future, and at a great price!

    I have just tried using it to build an Android and iOS version for a game we have. The Android one built fine, but the iOS Xcode project was not valid. We are using the Facebook SDK, and I was wondering if you support plugins running their own Post Process scripts?

    I do have a feature request. This is to be able to supply a build directory that is outside of the Unity Projects folder. Currently it only supports creating the builds inside the project under the 'Builds' directory.

    Thanks,
    Adam
     
  14. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello Adam,

    Thanks a lot for the compliment ;)

    There should be absolutely no problem using Advanced Builder with any Post Process scripts because it uses the exact same build method Unity use.
    I'll try to reproduce what you have in a simple project, but if I don't have any issue, we'll need to look into that together :/

    Having the build directory outside the project can be added as a feature, but can you tell me why you need that? If it's because of versioning, you can ignore the entire Builds folder.
     
  15. mimminito

    mimminito

    Joined:
    Feb 10, 2010
    Posts:
    780
    Hi,

    Its mainly because of versioning, but also I share a lot of projects by archiving them and sending via dropbox for example. Just a nice to have, not a necessity.
    If you cant reproduce it, then id be glad to look into this together.

    Adam
     
  16. silviobadseed

    silviobadseed

    Joined:
    Nov 28, 2013
    Posts:
    32
    In OnPreBuild and OnPostBuild can I rename directories or modify script files? Before building it will re-compile, isn't it?

    I need it for some difference between Amazon and Google builds.
     
  17. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello, yes it should recompile everything. Just make sure to call AssetDatabase.SaveAssets and then AssetDatabase.Refresh to make sure Unity see all that.
    Can you explain a little bit more the differences you have between Amazon and Google? It could help improve Advanced Builder :)
     
  18. silviobadseed

    silviobadseed

    Joined:
    Nov 28, 2013
    Posts:
    32
    Amazon and Google have different plugins and systems, because of that I need to do some changes.

    This is about directory:
    I have two Android folder in Plugin, one is Android_Amazon and one is Android_Google, so depending on what build I'm doing for I re-name those directory in Android to be sure Unity takes the correct one.

    and this is about scripts:
    I have some wrapper for IAP and Achievements, and depending on the store I'm building for I need to remove commets like //AMAZON or //GOOGLE from some scripts that use a class or another through "using" expression to add a specific component store dependent, and in OnPostBuild restore the comments.
     
  19. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Okay I see now thanks.
    In a future update, I plan to add a distribution platform under platform. So you could define Amazon, Samsung and Google under Android, and Steam, Website for PC etc...
    With that, you could do AppParameters.CurrentDistributionPlatform in your code to check if you're using the Amazon, Samsung or Google build and you won't have to remove code or uncomment code ;)
     
  20. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hi everyone,

    Sorry it's been a while since I gave news.
    Advanced Builder 1.1.0 beta is available with support for Windows Phone 8, Windows Store 8 and BlackBerry!

    If anyone want to try it out, please send me an email at tools@pygmymonkey.com
    Thanks.
     
  21. tequibo

    tequibo

    Joined:
    Jun 4, 2013
    Posts:
    19
    Looking forward to this plugin working in a free Unity version. I bought it on sale, haven't seen the note about functioning only in Pro.
     
  22. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello Adam, sorry it took so long to fix and answer...
    I found the issue, and it will be present in the next update, but if you want it now, you just have to open the PlatformiOS.cs file, and replace :
    new PlatformArchitecture(null, "/", BuildTarget.iPhone, true),
    with
    new PlatformArchitecture(null, "", BuildTarget.iPhone, true),

    Yes... this was just because of that :)
     
  23. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello tequibo,

    Sorry for that :/
    I'll try to add these features as soon as I can.
    Also, a lot of people don't know about that, but after buying an asset, you can ask Unity for a refund (during a limited time)!
     
  24. silviobadseed

    silviobadseed

    Joined:
    Nov 28, 2013
    Posts:
    32
    Have you ever had some problem to open Advanced Builder window?
    I thought it was a Unity editor problem that sometimes don't update inspector or don't open some windows and so you need to restart it, but two days are passed and all other windows open as usual. Do you have some suggest?

    P.S. Is there any date for a new versione upgrade? :)
     
  25. mimminito

    mimminito

    Joined:
    Feb 10, 2010
    Posts:
    780
    Thanks for sorting this out :)
     
  26. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hi! Thanks for the feedback.
    I always have this problem with any plugin Window in Unity. Every time you switch project in the Unity editor, it loses I don't know what, and you have to reopen the window manually. This is really a pain in the ass, but I have this issue with NGUI too for example.
    When you say all other windows open as usual, you're talking about default unity windows right? Not other plugin windows?

    Also, I've added support for BlackBerry, Windows Phone 8 and Windows Store 8 for the next update.
    That's almost the only thing that'll be present in the next update. I'll try to publish it as soon as possible ;)
     
  27. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello everyone,

    An update is now available on the Asset Store!
    Here's the changelog:

    Version 1.1.0 f1
    - 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
     
    Last edited: Oct 6, 2014
  28. AlexAlex

    AlexAlex

    Joined:
    Sep 26, 2013
    Posts:
    3
    Will you add possibility to include/exclude files from streaming assets for each build? Will you include possibility to remove/add files from Resources folders for each build? Will you add possibility to add/remove scenes for each build?
     
  29. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello Alex,

    Well, as doing things pre/post builds depend on each person/project, there is already a generic method that you can use to do what you want to do.
    But it will require you to write a little bit of code.

    You just have to create a custom build script (you have an example in AdvancedBuilder/Example/Editor/MyCustomBuild), and in the OnPreBuild method, you just move things out of StreamingAssets, or Resources or whatever you want, and in the OnPostBuild method, you just have to put them back ;)
     
  30. phoenixrising

    phoenixrising

    Joined:
    Aug 9, 2013
    Posts:
    57
    Can you use different scenes for different builds/platforms?

    Does it allow you to differentiate builds based on which scenes get built for which project / target ?
     
  31. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello,

    There is a generic method that you can use to do what you want to do, but it will require you to write a little bit of code.

    You just have to create a custom build script (you have an example in AdvancedBuilder/Example/Editor/MyCustomBuild), and in the OnPreBuild method, you just change EditorBuildSettings.scenes to specify the array of scene you like depending on the platform, and in the OnPostBuild method, you can just put them back to whatever scene was by default.

    Same answer than before.
    You can do whatever you want in the OnPreBuild/OnPostBuild methods, so if you want, you can edit a file in the OnPreBuild method, for example you can edit in a script you create, the string MyCustomScript.BuildType to whatever you want to differentiate builds based on whatever you want (OnPreBuild method tells you which platform, which release type you're going to build).

    Is this clear?
     
  32. LeakySink

    LeakySink

    Joined:
    Apr 9, 2012
    Posts:
    141
    Does this plug-in allow you to build an Xcode project while running on Windows?
     
  33. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello,
    No it does not. It uses the exact same build process than the one used in Unity, thus not allowing you to build for iOS on Windows.
    You'll have to buy a Mac for that ;)
     
  34. kaizokuo

    kaizokuo

    Joined:
    Feb 10, 2014
    Posts:
    3
    Hey!

    1.: gz, nice extension! ;)

    2.: I'm sorry that I ask a question again, that's even on the last page, but as I've seen, the most recent update related to a Unity Free compatible version was about two months ago. Your solution is a must-have for anyone trying to make something worthwhile, so I'd like to buy it, BUT: can you please give us an approximate estimate when may come out the Unity Free compatible version?

    A huge thanks in advance, have a nice day!
     
  35. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Nice Asset,

    I'm thinking of purchasing this plugin. Can you make more detailed videos.

    Cheers.
     
  36. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    1. Thx a lot ;)

    2. Yes sorry for that, I've been working on other things...
    Keep in mind that making it compatible with the Free version will only mean that you can switch to a "configuration" in one click (for example, setting your game to the Free version and switching to Android platform, or setting your game to the Dev version and switching to iOS platform).
    You'll then have to manually build each version...

    As for an estimate of the release date, I'm really sorry but giving one won't really be the best thing since I don't know if I can keep it.
    I'll try working on it as soon as possible though (it's top on the feature list) :)

    PS : Love your pseudo and avatar ;)
     
    Last edited: May 28, 2014
  37. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Thanks rocki,

    Did you see the almost 13 minutes video here: https://www.youtube.com/watch?v=_FlWibEyvzQ?
    If yes, what would you like to see in other videos?
     
  38. retox

    retox

    Joined:
    Sep 12, 2012
    Posts:
    29
    $Playmaker issues 2.png

    I purchased this today and installed into my project and now have multiple errors. All relate to "Tooltip" could not be found and "TooltipAttribute" is an ambiguous reference - relating to Playmaker and SoundManager Pro.

    Has anyone else suffered this problem?
     
    Last edited: May 28, 2014
  39. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hum... are you sure this is coming from Advanced Builder?
    We do not have a single class containing the name Tooltip and we use a custom namespace for every class so even if we had a Tooltip class this should not cause issues.

    Can you try to remove the AdvancedBuilder folder to see if you still have errors?
     
  40. retox

    retox

    Joined:
    Sep 12, 2012
    Posts:
    29
    Yea I thought it weird as well. I've deleted out the folder and the problem remains. However, this wasn't an issue until I installed Advanced Builder. I'll try some tests and see if I can work it out, then report back.
     
  41. AYFukushima

    AYFukushima

    Joined:
    Feb 4, 2013
    Posts:
    12
    Hi!

    This plugin split the .apk if it has more than 50mb? I know there is an option in Unity Settings (Split Binary), but, I was using the Unity Google Downloader Obb Plugin, in Asset Store, but it seens the plugin was removed from Asset Store!

    Anyway...this plugin resolve the .OBB problem automatically?

    Thanks a lot!
     
  42. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hi :)

    The plugin will not automatically split the .apk if it has more than 50MB. In order to do that, as you said, you need to go to Player Settings -> Publishing Settings and use the Split Application Binary toggle.
    If you do that, then yes, Advanced Builder will split your binary in a .apk and a .obb file.

    BUT! as said in the documentation here: http://docs.unity3d.com/Manual/android-OBBsupport.html it seems you need to load the .obb file yourself in a script. As you said there was a plugin that was doing just that but it's not here anymore.
    But this is a problem outside of what Advanced Builder is supposed to do, it's not related to the build process of your app.

    I think the best thing to do is to contact Unity on twitter @Unity3D for example, or @_eriq_ (who works on Android at Unity3D) and ask them about the missing plugin :)
     
  43. NJ-chieh

    NJ-chieh

    Joined:
    Dec 24, 2013
    Posts:
    4
    Hi!

    Thank you do this plugin. It's greate.
    I wnat see the video, but the video screen is fuzzy before 11:15.

    Can you update again? thx.

    The other question is, I'm do that you say in the video about the "Mycustom.cs" scrip. But I have an error about that:
    Code (CSharp):
    1. if (releaseType.name.Equals ("Beta")) {
    2.             EditorBuildSettings.scenes = new EditorBuildSettingsScene[1];
    Error.PNG

    I'm confuse. Plz tell me.
     
  44. c6u2

    c6u2

    Joined:
    Nov 15, 2013
    Posts:
    31
    I want to know the build time of the plugin,If I build android and ios Edition,Is that the time spended is the sum time of build the two Platform?
     
  45. NJ-chieh

    NJ-chieh

    Joined:
    Dec 24, 2013
    Posts:
    4
    PlayerSettings.SetScriptingDefineSymbolsForGroup (BuildTargetGroup.WebPlayer, "thisIsDefineForTheGroupWeb");
    Mabey you can try this in the OnPreBuild method.
     
  46. NJ-chieh

    NJ-chieh

    Joined:
    Dec 24, 2013
    Posts:
    4
    Hi, I Find the "PlayerSettings.SetScriptingDefineSymbolsForGroup (BuildTargetGroup, string);"

    But the BuildTargetGroup's enum not same the PlatformType's enum
    ex.
    BuildTargetGroup.iPhone & PlatformType.iOS

    if they are same, I change the "Global #define" in OnPreBuild method more easier.

    Thx again.
     
  47. NJ-chieh

    NJ-chieh

    Joined:
    Dec 24, 2013
    Posts:
    4
  48. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553

    @PygmyMonkey: I know the suggested process is to roll my own code for this, but frankly, it's a hassle. I bought this plugin because I want to automate such things, not have to do it myself.

    I would really appreciate it if Advanced Builder would have a drag-and-drop solution regarding which Release Type gets which Resource assets.

    I'd imagine each release type would have a list of all assets found in all Resources folders, and a checkbox for each to include them or not. Ticking the checkbox for a subfolder inside Resources would tick the assets inside it. Same goes for files/folders in StreamingAssets. Likewise for which scenes get included for which Release Type.



    Another thing: When I move the folder for AdvancedBuilder, it produces errors. I imagine this is because it can't find the path to create AppParameters.cs. However, I prefer moving all my plugins into a subfolder because all these installed plugins clutter my view of my project's top level Assets folder.

    It would be preferable if the user can specify where they want AppParameters.cs to be created.
     
  49. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Sorry to everyone for the delay, I did not received an email informing me that new messages where sent here :/
     
  50. PygmyMonkey

    PygmyMonkey

    Joined:
    Jan 13, 2014
    Posts:
    306
    Hello,

    The video is blurry "because of" YouTube. When you watch the video, you can click on the small gear on the top right, and set the video quality to 1080p. Let it load a little bit and then you should have a video with High Quality ;)

    For your NullPointer issue, it's because you can't directly modify EditorBuildSettings.scenes, you need to do something like this:
    Code (CSharp):
    1. EditorBuildSettingsScene[] myScenes = new EditorBuildSettingsScene[1];
    2. myScenes[0] = new EditorBuildSettingsScene("Assets/PathToScene.unity", true);
    3. EditorBuildSettings.scenes = myScenes;
    Feel free to ask any question!
     
    Last edited: Oct 1, 2014