Jump to content

Request in Unity XR package: Can you NOT delete android manifest during build?


mobfish_cai

Recommended Posts

Our project targets multiple devices, including multiple android vr devices. 

I noticed that during wave vr build, the manifest will be deleted, which will result the PlayerSetting "Custom Main Manifest" removed from checking, and it will result error when I build for other platform afterwards. And I can't find any c# API which enable this. 

So can you remove these codes which deletes manifest? You can write in document that this specific manifest is required for Wave VR Build.

Link to comment
Share on other sites

I can't answer early because: 

You have reached the maximum number of posts you can make per day. 

I believe 3 posts per day is way tooo low.

Regards to the issue, no, this doesn't solve the problem.

- I'm talking about the new "Unity XR Plugin", not "Legacy Wave VR Unity Plugin"

- By default, "Assets/WaveVR/Platform/Android/Customize" this path doesn't exist.

- in the package contains this class: "CustomBuildProcessor", the subclass "private class CustomPostprocessor : IPostprocessBuildWithReport" already indicated, that this plugin will delete android manifest, which will result the issue I noted in the first post.

So my request is, don't delete exist android manifest or overwrite it. Write it in your document that this specific android manifest is required to do a successful build. Or alternatively, you can use "IPostGenerateGradleAndroidProject" to change gradle after gradle project output.

Link to comment
Share on other sites

Hi mobfish_cai,

Thanks for your feedback. We will not  delete exist android manifest or overwrite it in next version.

Currently, you can changed the code at Library\PackageCache\com.htc.upm.wave.xrsdk@1.0.0\Editor\WaveXRBuildCheck.cs as below

 

namespace Wave.XR.BuildCheck
{
    static class CustomBuildProcessor
    {
        const string AndroidManifestPathSrc = "Packages/com.htc.upm.wave.xrsdk/Runtime/Android/AndroidManifest.xml";
        const string AndroidManifestPathDest = "Assets/Plugins/Android/AndroidManifest.xml";

        static bool isAndroidManifestPathDestExisted = false;

        static void CopyAndroidManifest()
        {
            const string PluginAndroidPath = "Assets/Plugins/Android";
            if (!Directory.Exists(PluginAndroidPath))
                Directory.CreateDirectory(PluginAndroidPath);

            isAndroidManifestPathDestExisted = File.Exists(AndroidManifestPathDest );
            if (File.Exists(AndroidManifestPathSrc))
                File.Copy(AndroidManifestPathSrc, AndroidManifestPathDest, false); // not to overwrite existed AndroidManifest.xml
        }

...

        private class CustomPostprocessor : IPostprocessBuildWithReport
        {
            public int callbackOrder { get { return 0; } }

            public void OnPostprocessBuild(BuildReport report)
            {
                if (report.summary.platform == BuildTarget.Android && CheckIsBuildingWave())
                {

                    if (!isAndroidManifestPathDestExisted) // not to delete existed AndroidManifest.xml
                     DelAndroidManifest();
                }
            }
        }

}

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...