为了实现不同Android渠道,采用不同的 AndroidManifest 配置。
需要在Unity打包前,通过代码自动修改 AndroidManifest.xml 文件的内容,实现自动化一键生成,减少了生成 android studio 工程后再修改的麻烦。
首先,Unity 提供了打包前和打包后调用的接口(interface)
IPreprocessBuildWithReport.OnPreprocessBuild
IPostprocessBuildWithReport.OnPostprocessBuild
其次,C# 提供了修改 XML 文件的库 System.Xml
方便了我们对 AndroidManifest.xml 文件进行增删改查
最后,为了实现灵活配置,采用了 Json 文件作为配置文件
独立的 Json 文件便于管理,保存在工程特定目录。
我这里使用的为 Newtonsoft.Json 库,小巧
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using System.IO;
using System.Xml;
using Newtonsoft.Json;
/// <summary>
/// created by lymancao @ 2023.08.23
/// 说明:
/// 为了针对不同Android渠道,进行 AndroidManifest 文件的不同配置,特意实现此功能。
/// 利用 Unity 提供的打包前调用接口,C#的XML库
/// 引入 Newtonsoft.Json 库 处理Json格式的配置文件