Skip to main content

Upgrading the SDK

Version 29.x Upgrade

This document is for developers who have previously integrated v27.x or v28.x of the Skillz SDK. To integrate for the first time, please follow the standard instructions.

Before You Upgrade

The Skillz SDK now supports an Android sdkTargetVersion of 33. This requires a Gradle and JDK update for Unity versions < 2022.3.

User Permissions Note

Due to Android being built with Android SDK 30+, your app will ask for permissions at runtime, rather than at install time. Unity typically operates by asking for all possible permissions on the first launch of your app, and this can be overwhelming/off-putting to your users. Refer to these instructions on how to prompt for only necessary permissions at runtime.

Instructions

tip

As a best practice back up your existing project prior to upgrading. The upgrade steps require you to delete existing files and directories.

Delete the Assets/Skillz folder in Unity

Make sure to save any custom code you wrote in these Skillz files for safe keeping. In your Unity project, delete the Assets/Skillz/ folder in your Unity project.

Delete the Assets/ExternalDependencyManager folder in Unity

The Google Play Services Resolver has been renamed to the External Dependency Manager for Unity (EDM4U). If you have a PlayServicesResolver and/or ExternalDependencyManager directory in your project you should delete this directory before upgrading and installing the Skillz SDK Unity package.

Import the New Unity Package

With your Unity project open, double-click on the Unity package, skillz_unity-{version}.unitypackage, found inside the downloaded SDK archive. A dialog will pop up with a list of files to import. Make sure all files are checked and click "OK".

Disable Registry Addition

Skillz bundles a plugin by Google called the External Dependency Manager (EDM4U), which is used to resolve Android dependencies. On import of the Skillz SDK, EDM will display a dialog, similar to the screenshot below, to ask if you would like to add additional Unity Package Manager registries. Click the "Disable Registry Addition" button to dismiss the dialog.

Configure iOS Resolver Settings

Enter the External Dependency Manager's iOS Resolver settings by clicking `Assets > External Dependency Manager > iOS Resolver > Settings. Verify the settings are set like this:

Install CocoaPods

The External Dependency Manager can install CocoaPods for you, if it is not already installed:

  1. Select Assets > External Dependency Manager > iOS Resolver > Install Cocoapods
  2. Click OK in the pop-up confirming installation was successful.

Update Skillz Manager Extra Logic Scripts

If the Skillz Manager has been added to your project before upgrade, and the extra logic scripts are used, a small change is needed to the parameters of one of the extra logic script methods.

Previous OnMatchWillBegin method:

SkillzExampleManagerLogic.cs
// ...
public class SkillzExampleManagerLogic : MonoBehaviour
{
public void OnMatchWillBeginLogic()
{
Debug.Log("Loading Game Scene");
}
...

New OnMatchWillBegin method:

SkillzExampleManagerLogic.cs
// ...
public class SkillzExampleManagerLogic : MonoBehaviour
{
public void OnMatchWillBeginLogic(SkillzSDK.Match match)
{
Debug.Log("Loading Game Scene");
}
...

Add Skillz Manager

The legacy SkillzMatchDelegate flow is still valid, the new Skillz Manager can also be used for this purpose. Instructions on how to update this are below:

First, Please replace your call to SkillzCrossPlatform.LaunchSkillz(SkillzMatchDelegate delegate) with SkillzCrossPlatform.LaunchSkillz().

A Skillz Manager needs to be added to your start menu scene.

  1. Right click in the Heirarchy and select Create Empty. In the inspector, click Add Component then add the Skillz Manager component.

  2. Open the Skillz Manager in the Inspector.

  3. Choose a Game Scene, Start Menu Scene, and optionally a Progression Room Scene for the scene fields.

If your project does not use multiple scenes, or scenes need to be loaded manually, the scene fields can be left blank. The logic for these events can then be included in the extra logic script (see below).

Skillz Manager

caution

If your project uses unsupported Unity version 2019 or lower the Skillz Manager will not display correctly. Solution Here.

  1. For additional logic you may add a script to the Skillz Manager by selecting Add Component, then selecting a custom script. The script must be on the same gameObject as the Skillz Manager.

Methods from this script can then be called by pressing the + button under the On Match Will Begin, On Skillz Will Exit, and On Progression Room Enter, then selecting public methods from the added script.

Skillz Manager

An example extra logic script:

SkillzExampleManagerLogic.cs
// ...
public class SkillzExampleManagerLogic : MonoBehaviour
{
public void OnMatchWillBeginLogic(SkillzSDK.Match match)
{
Debug.Log("Loading Game Scene");
}

public void OnSkillzWillExitLogic()
{
Debug.Log("Loading Start Menu Scene");
}

public void OnProgressionRoomEnterLogic()
{
Debug.Log("Loading Progression Room Scene");
}
}
// ...

Test Your Game's Workflow

Test your game's workflow with Skillz using the SDK's SIDEkick feature.

Build Your Game

Follow the instructions on how to export and build your game for iOS or Android.

Upgrading Gradle and JDK

Versions 29.2.0+ of the SDK require Gradle 7.4+ and JDK 11. You can find instruction on how to update at the link above.

Next Steps

If you encounter any problems, please contact us with a detailed description of the issue you are encountering.