public async void VerifyRemoteAssetBundle(RemoteAssetBundle bundle, bool verified)
    {
        Object jwt      = GUIConfigureTab.jwtFile;
        string endpoint = FormatEndpoint(uploadEndpoint);

        if (!string.IsNullOrEmpty(endpoint))
        {
            string jwtName = jwt ? jwt.name : null;
            try
            {
                EditorUtility.DisplayProgressBar("Remote Asset Bundles", string.Format("Updating Asset Bundle {0} from {1}", bundle.info.name, bundle.appName), 1.0f);
                RemoteAssetBundle newBundle = await RemoteAssetBundleUtils.VerifyAssetBundle(endpoint, bundle, verified, jwtName);

                GUIEditTab.AddMessage(string.Format("Successfully Updated Asset Bundle {0} from app {1}", bundle.info.name, bundle.appName), MessageStatus.Success);
                EditorUtility.DisplayProgressBar("Remote Asset Bundles", "The content of the manifest has changed - refreshing now ...", 1.0f);
                await OnLoadManifests();

                GUIEditTab.SelectCurrentManifest(bundle.appName);
                EditorUtility.ClearProgressBar();
            }
            catch (System.Exception ex)
            {
                EditorUtility.ClearProgressBar();
                GUIEditTab.AddMessage(string.Format("Unable to update Asset Bundle {0} from app {1}. \n Reason: {2}", bundle.info.name, bundle.appName, ex.Message), MessageStatus.Error);
                throw;
            }
        }
    }
Пример #2
0
        public IEnumerator TestDownloadRemoteAssetBundle(System.Action <string, AssetBundle> callback)
        {
            Debug.Log("Testing RemoteAssetBundleUtils.DownloadAssetBundle");
            AssetBundleInfo          info    = new AssetBundleInfo(TestConstants.TEST_BUNDLE_NAME, TestConstants.TEST_BUNDLE_PATH);
            FCMMessage               message = new FCMMessage("Test Upload", "This is a test", null);
            Task <RemoteAssetBundle> task    = RemoteAssetBundleUtils.UploadAssetBundle(TestConstants.TEST_SERVER_URL, info, message, null, TestConstants.JWT_TOKEN_NAME);

            while (!task.IsCompleted)
            {
                yield return(new WaitForFixedUpdate());
            }
            RemoteAssetBundle bundle = task.Result;

            Assert.AreEqual(bundle.toHash128().isValid, true);
            yield return(StartCoroutine(RemoteAssetBundleUtils.DownloadAssetBundleAsync(TestConstants.TEST_SERVER_URL, bundle, callback)));

            // Try to download again and check the cache
            yield return(StartCoroutine(RemoteAssetBundleUtils.DownloadAssetBundleAsync(TestConstants.TEST_SERVER_URL, bundle, TestDownloadCachedAsset)));

            // Now try to delete it
            Task <HttpStatusCode> t = RemoteAssetBundleUtils.DeleteAssetBundle(TestConstants.TEST_SERVER_URL, bundle);

            while (!t.IsCompleted)
            {
                yield return(new WaitForFixedUpdate());
            }
            HttpStatusCode status = t.Result;

            Assert.AreEqual(status, HttpStatusCode.OK);
            Debug.Log("Passed");
            finished = true;
        }
    public async void SendRemoteAssetBundleMessage(RemoteAssetBundle bundle)
    {
        Object jwt      = GUIConfigureTab.jwtFile;
        string endpoint = FormatEndpoint(messageEndpoint);

        if (!string.IsNullOrEmpty(endpoint))
        {
            string jwtName = jwt ? jwt.name : null;
            try
            {
                EditorUtility.DisplayProgressBar("Remote Asset Bundles", string.Format("Sending Message for Asset Bundle {0} from {1}", bundle.info.name, bundle.appName), 1.0f);
                FCMMessageStatus message = await RemoteAssetBundleUtils.SendBundleMessage(endpoint, bundle, jwtName);

                if (message.sendStatus)
                {
                    GUIEditTab.AddMessage(string.Format("Successfully Sent Message for Asset Bundle {0} from {1}. \n Reason: {2}", bundle.info.name, bundle.appName, message.statusMessage), MessageStatus.Success);
                }
                else
                {
                    GUIEditTab.AddMessage(string.Format("Unable to Send Message for Asset Bundle {1} from {2}. \n Reason: {1}", bundle.info.name, bundle.appName, message.statusMessage), MessageStatus.Error);
                }

                EditorUtility.ClearProgressBar();
            }
            catch (System.Exception ex)
            {
                EditorUtility.ClearProgressBar();
                GUIEditTab.AddMessage(string.Format("Unable to Send Message for Asset Bundle {1} from {2}. \n Reason: {1}", bundle.info.name, bundle.appName, ex.Message), MessageStatus.Error);
                throw;
            }
        }
    }
Пример #4
0
 public void SetManifests(RemoteAssetBundleManifest manifest)
 {
     Manifests     = manifest;
     currentBundle = null;
     Apps          = new HashSet <string>();
     foreach (RemoteAssetBundle b in Manifests.bundles)
     {
         Apps.Add(b.appName);
     }
 }
Пример #5
0
        public IEnumerator VerifyUpdateAssetBundle()
        {
            Debug.Log("Testing RemoteAssetBundleUtils.VerifyAssetBundle");
            Task <RemoteAssetBundle> task = RemoteAssetBundleUtils.VerifyAssetBundle(TestConstants.TEST_SERVER_URL, bundle, true, TestConstants.JWT_TOKEN_NAME);

            while (!task.IsCompleted)
            {
                yield return(null);
            }
            bundle = task.Result;
            Assert.IsTrue(bundle.toHash128().isValid);
            Assert.IsTrue(bundle.verified);
        }
Пример #6
0
        public IEnumerator VerifyUploadAssetBundle()
        {
            Debug.Log("Testing RemoteAssetBundleUtils.UploadAssetBundle");
            AssetBundleInfo          info    = new AssetBundleInfo(TestConstants.TEST_BUNDLE_NAME, TestConstants.TEST_BUNDLE_PATH);
            FCMMessage               message = new FCMMessage("Test Upload", "This is a test", null);
            Task <RemoteAssetBundle> task    = RemoteAssetBundleUtils.UploadAssetBundle(TestConstants.TEST_SERVER_URL, info, message, null, TestConstants.JWT_TOKEN_NAME);

            while (!task.IsCompleted)
            {
                yield return(null);
            }
            bundle = task.Result;
            Assert.IsTrue(bundle.toHash128().isValid);
            Assert.AreEqual(Application.productName, bundle.appName);
        }
Пример #7
0
 public void RemoteAssetBundleEditor()
 {
     if (currentBundle != null)
     {
         GUILayout.BeginVertical(contentBox);
         {
             GUILayout.BeginHorizontal();
             {
                 GUILayout.Label("Update Remote Asset Bundle");
                 if (GUILayout.Button("Close", DefaultButtonOptions))
                 {
                     currentBundle = null;
                     return;
                 }
             }
             GUILayout.EndHorizontal();
             EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
             GUILayout.Label(currentBundle.info.name);
             string verifyLabel = currentBundle.verified ? "Revoke" : "Verify";
             GUILayout.Space(TabLayoutPadding);
             if (GUILayout.Button(verifyLabel, DefaultButtonOptions))
             {
                 if (OnUpdateRemoteBundleVerification != null)
                 {
                     OnUpdateRemoteBundleVerification(currentBundle, !currentBundle.verified);
                 }
             }
             if (GUILayout.Button("Delete", DefaultButtonOptions))
             {
                 if (OnDeleteRemoteBundle != null)
                 {
                     OnDeleteRemoteBundle(currentBundle);
                 }
             }
             GUILayout.Space(TabLayoutPadding);
             GUILayout.Label("Send Push Notification");
             GUILayout.Label("(Note: Push Notifications are Sent after Verification by Default, but can be Re-Sent Here.)");
             if (GUILayout.Button("Send", DefaultButtonOptions))
             {
                 if (OnSendRemoteBundleMessage != null)
                 {
                     OnSendRemoteBundleMessage(currentBundle);
                 }
             }
         }
         GUILayout.EndVertical();
     }
 }
    // Async Server Methods
    public async void UploadAssetBundle(AssetBundleInfo assetBundleInfo, string appName, FCMMessage message)
    {
        Object jwt      = GUIConfigureTab.jwtFile;
        string endpoint = FormatEndpoint(uploadEndpoint);

        if (!string.IsNullOrEmpty(endpoint))
        {
            string jwtName = jwt ? jwt.name : null;
            try
            {
                EditorUtility.DisplayProgressBar("Remote Asset Bundles", string.Format("Uploading Asset Bundle {0} from {1}", assetBundleInfo.name, appName), 1.0f);
                RemoteAssetBundle ab = await RemoteAssetBundleUtils.UploadAssetBundle(endpoint, assetBundleInfo, message, appName, jwtName);

                GUIAddTab.AddMessage(string.Format("Successfully Uploaded Asset Bundle {0}", assetBundleInfo.name), MessageStatus.Success);
                EditorUtility.ClearProgressBar();
            }
            catch (System.Exception ex)
            {
                EditorUtility.ClearProgressBar();
                GUIAddTab.AddMessage(string.Format("Unable to upload Asset Bundle {0}. \n Reason: {1}", assetBundleInfo.name, ex.Message), MessageStatus.Error);
                throw;
            }
        }
    }
Пример #9
0
 public void SelectBundleToEdit(RemoteAssetBundle bundle)
 {
     currentBundle = bundle;
 }