diff --git a/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll b/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll
index 05391818..51f815a5 100644
Binary files a/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll and b/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll differ
diff --git a/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs b/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs
index d127bda4..12e583e5 100644
--- a/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs
+++ b/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs
@@ -1,3 +1,5 @@
+using PubnubApi.PNSDK;
+
namespace PubnubApi.Unity {
public static class PubnubUnityUtils {
///
@@ -6,12 +8,14 @@ public static class PubnubUnityUtils {
/// Pubnub configuration object
/// Flag for enabling WebGL mode - sets httpTransportService to UnityWebGLHttpClientService
/// Flag to set Unity specific logger (UnityPubNubLogger)
+ /// Optional: PNSDK source, used for analytics and debugging.
///
- public static Pubnub NewUnityPubnub(PNConfiguration configuration, bool webGLBuildMode = false, bool unityLogging = false) {
+ public static Pubnub NewUnityPubnub(PNConfiguration configuration, bool webGLBuildMode = false, bool unityLogging = false, IPNSDKSource ipnsdkSource = null) {
+ ipnsdkSource ??= new UnityPNSDKSource();
var pubnub = webGLBuildMode
? new Pubnub(configuration, httpTransportService: new UnityWebGLHttpClientService(),
- ipnsdkSource: new UnityPNSDKSource())
- : new Pubnub(configuration, ipnsdkSource: new UnityPNSDKSource());
+ ipnsdkSource: ipnsdkSource)
+ : new Pubnub(configuration, ipnsdkSource: ipnsdkSource);
if (unityLogging) {
pubnub.SetLogger(new UnityPubNubLogger(pubnub.InstanceId));
}
@@ -24,11 +28,12 @@ public static Pubnub NewUnityPubnub(PNConfiguration configuration, bool webGLBui
///
/// Pubnub configuration Scriptable Object asset
/// Client user ID for this instance
+ /// Optional: PNSDK source, used for analytics and debugging.
///
- public static Pubnub NewUnityPubnub(PNConfigAsset configurationAsset, string userId) {
+ public static Pubnub NewUnityPubnub(PNConfigAsset configurationAsset, string userId, IPNSDKSource ipnsdkSource = null) {
configurationAsset.UserId = userId;
var pnConfig = ((PNConfiguration)configurationAsset);
- return NewUnityPubnub(pnConfig, configurationAsset.EnableWebGLBuildMode, configurationAsset.LogToUnityConsole);
+ return NewUnityPubnub(pnConfig, configurationAsset.EnableWebGLBuildMode, configurationAsset.LogToUnityConsole, ipnsdkSource: ipnsdkSource);
}
}
}
\ No newline at end of file
diff --git a/PubNubUnity/Assets/PubNub/Runtime/Util/UnityPNSDKSource.cs b/PubNubUnity/Assets/PubNub/Runtime/Util/UnityPNSDKSource.cs
index 502de7b9..6f95b879 100644
--- a/PubNubUnity/Assets/PubNub/Runtime/Util/UnityPNSDKSource.cs
+++ b/PubNubUnity/Assets/PubNub/Runtime/Util/UnityPNSDKSource.cs
@@ -6,6 +6,7 @@ namespace PubnubApi.Unity
public class UnityPNSDKSource : IPNSDKSource {
private const string build = "9.1.0";
+ public string Build => build;
public string GetPNSDK() {
#if(UNITY_IOS)