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; } } }
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; } } }
public void SetManifests(RemoteAssetBundleManifest manifest) { Manifests = manifest; currentBundle = null; Apps = new HashSet <string>(); foreach (RemoteAssetBundle b in Manifests.bundles) { Apps.Add(b.appName); } }
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); }
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); }
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; } } }
public void SelectBundleToEdit(RemoteAssetBundle bundle) { currentBundle = bundle; }