static void AddPackage(ScopeRegistry scopeRegistry, string packageName, string packageVersion)
        {
            var manifest = new Manifest();

            manifest.Fetch();

            var manifestUpdated = false;

            if (!manifest.TryGetScopeRegistry(scopeRegistry.Url, out _))
            {
                manifest.SetScopeRegistry(scopeRegistry.Url, scopeRegistry);
                manifestUpdated = true;
            }

            if (!manifest.IsDependencyExists(packageName))
            {
                manifest.SetDependency(packageName, packageVersion);
                manifestUpdated = true;
            }

            if (manifestUpdated)
            {
                manifest.ApplyChanges();
            }
            Client.Add(packageVersion);
        }
    protected override void _runStep()
    {
        var manifest = new Manifest();

        manifest.Fetch();

        manifest.AddScopeRegistry(_scopeRegistry);

        var scopeRegistry = manifest.GetScopeRegistry(_registryUrl);

        scopeRegistry.AddScope(_packagesScope);

#if UNITY_2017_3_OR_NEWER
        manifest.ApplyChanges();

        var addRequest = UnityEditor.PackageManager.Client.Add(_coreVersion);
        while (!addRequest.IsCompleted)
        {
        }

        addRequest = UnityEditor.PackageManager.Client.Add(_androidVersion);
        while (!addRequest.IsCompleted)
        {
        }

        addRequest = UnityEditor.PackageManager.Client.Add(_iosVersion);
        while (!addRequest.IsCompleted)
        {
        }
#else
        manifest.AddDependency(_corePackageName, _coreVersion);
        manifest.AddDependency(_androidPackageName, _androidVersion);
        manifest.AddDependency(_iosPackageName, _iosVersion);

        manifest.ApplyChanges();
        AssetDatabase.Refresh();
#endif
        OneSignalSetupWindow.CloseWindow();
        SessionState.SetBool(_shouldShowWindowKey, true);
    }
Beispiel #3
0
    public static void ResetAllSteps()
    {
        /*
         * ExportAndroidResourcesStep
         * deletes the OneSignalConfig.plugin directory
         */
        AssetDatabase.DeleteAsset(Path.Combine("Assets", "Plugins", "Android", "OneSignalConfig.plugin"));

        /*
         * InstallEdm4UStep
         * deletes the edm4u directory
         */
        AssetDatabase.DeleteAsset(Path.Combine("Assets", "ExternalDependencyManager"));

        /*
         * SetupManifestStep
         * handled by ExportAndroidResourcesStep
         */
        // do nothing

        /*
         * CleanUpLegacyStep
         * adds a random file to the Assets/OneSignal folder
         */
        File.Create(Path.Combine("Assets", "OneSignal", "tempfile"));

        /*
         * ImportPackagesStep
         * removes packages from manifest
         */
        var manifest = new Manifest();

        manifest.Fetch();
        manifest.RemoveDependency("com.onesignal.unity.core");
        manifest.RemoveDependency("com.onesignal.unity.android");
        manifest.RemoveDependency("com.onesignal.unity.ios");
        manifest.RemoveScopeRegistry("https://registry.npmjs.org");
        manifest.ApplyChanges();

        UnityEditor.PackageManager.Client.Resolve();
    }