public override MParticleSDK Initialize(MParticleOptions options)
        {
            if (options.IdentityStateListener != null)
            {
                Identity.AddIdentityStateListener(options.IdentityStateListener);
            }
            iOSBinding.MParticle.SharedInstance.StartWithOptions(Utils.ConvertToMpOptions(options));
            var mparticle = iOSBinding.MParticle.SharedInstance;

            mparticle.UploadInterval = options.UploadInterval;
            mparticle.SessionTimeout = options.SessionTimeout;
            mparticle.LogLevel       = Utils.ConvertToMpLogLevel(options.LogLevel);
            if (options.LocationTracking.Enabled)
            {
                mparticle.BeginLocationTracking(options.LocationTracking.MinDistance, options.LocationTracking.MinDistance);
            }
            else
            {
                mparticle.EndLocationTracking();
            }
            if (options.PushRegistration != null && options.PushRegistration.IOSToken != null)
            {
                mparticle.PushNotificationToken = options.PushRegistration.IOSToken;
            }
            if (options.UnCaughtExceptionLogging)
            {
                mparticle.BeginUncaughtExceptionLogging();
            }
            else
            {
                mparticle.EndUncaughtExceptionLogging();
            }
            return(this);
        }
        public void Initialize(MParticleOptions options)
        {
            if (Application.platform == RuntimePlatform.OSXEditor)
            {
                return;
            }
            if (options == null)
            {
                options = new MParticleOptions();
            }
            if (options.IdentityStateListener != null)
            {
                Identity.AddIdentityStateListener(options.IdentityStateListener);
            }
            String optionsJson;

            if (options.IdentifyRequest != null && options.IdentifyRequest.UserAliasHandler != null)
            {
                optionsJson = toUtils.SerializeDictionary(new MParticleOptionsDto(options, (Identity as IdentityApiImpl).addUserAliasHandler(options.IdentifyRequest.UserAliasHandler)));
            }
            else
            {
                optionsJson = toUtils.SerializeDictionary(new MParticleOptionsDto(options));
            }
            _Initialize(optionsJson);
        }