Cloud Build

Introduction

Lion Build Tools package reduces the time spent waiting for builds to complete on local workstations and helps ensure consistency across builds and by different developers. Our Cloud Build solutions will build your Unity game project for you while you can keep working.

This module offers the following features:

  • Trigger a build for iOS and Android from your Slack channel; see Jenkins Build-A-Bot SlackApp
  • Push builds directly to TestFlight, GooglePlay Internal Testing, and GoogleDrive
  • The Adapter Stabilizer verifies Ad Adapters are up-to-date; see: Adapter Stabiliser

Unity Integration

Prerequisites:

  • Supported Unity versions. (For other Unity versions, please contact Support)
    • 2021.3.25f1
    • 2021.3.33f1
    • 2022.3.19f1
    • 2022.3.29f1
  • Your Unity project needs to be hosted in Lion’s GitHub organization.
  • Your project must be using the default Gradle version associated with your Unity version (defined in the Version Compatibility List here). If you haven’t manually installed a gradle version, nothing to be worried about.

Initial Setup

  • Our build servers will pull your Unity project directly from a specific git revision in GitHub. Ensure you have committed and pushed your changes to GitHub, as our servers won’t see local changes on your workstation. This also gives you a commit you can revert to in case of issues.

  • If the project’s keystore is not already present in the repo, add it (for example, in the root folder or a /keystore subfolder)

  • Create the folder named ProvisioningProfiles in the unity project root directory. Put your .mobileprovision files directly into the ProvisioningProfiles folder.

Configuring BuildTools

  1. In the Project view, navigate to Assets/LionStudios/AutomatedBuilder/Editor

  2. Fill up any relevant setting of ScriptableObjects:

    • Common Settings
      • Dev Additional Def Symbol: Define the symbol which will be added when Jenkins makes a debug build. Change this if you use a different symbol to separate your debug build code with #if define.
      • Scripts Folder: Change this if your code is in a different folder. This is only used to reimport the code, so any folder with at least one script will work.
    • iOS Settings
      • Target Name: Your project’s target name in XCode. If you are not sure about it, do not change it.
      • Organization: The organization in which the app is published, either Lion Studios, Lion Studios Plus or Hippotap
      • Provisioning Profile Name: The provisioning profile fileName without the .mobileprovision extension.
      • Additional Define Symbols: If your project requires more define symbols in iOS builds
      • Capabilities: Select the capabilities your project needs
      • If your game uses OneSignal:
        • Enable the Remote Notifications capability
        • Enable the Using One Signal setting
        • Fill in OneSignal Provisional Profile Name: Provisioning Profile fileName without the .mobileprovision extension.
    • Android Settings
      • Keystore Path: The path to your project’s keystore file
      • Keystore Password: The password of the keystore
      • Keystore Alias: The alias to use in the keystore
      • Keystore Alias Password: The password for that alias
      • Additional Define Symbols: If your project requires additional define symbols in Android builds
  3. Do a single local build to generate buildTools/exportOptions.plist.

  4. Commit and push the following to your GitHub repository:

    • Packages/manifest.json
    • Your keystore file
    • buildTools/exportOptions.plist
    • The contents of the LionStudios/AutomatedBuilding/Editor folder
  5. If you haven’t already, install our Jenkins Build-A-Bot.

  6. Trigger Jenkins builds through Slack until all build issues are resolved and a successful build is available.