//todo 修改的函数
        private void ProcessPackageList(string outputPackagePath, BuildTarget buildTarget)
        {
            _assetBundleAssetPaths.Clear();
            byte[] encryptBytes = new byte[4];
            Icarus.GameFramework.Utility.Random.GetRandomBytes(encryptBytes);

            if (m_AssetBundleDatas.Count > ushort.MaxValue)
            {
                throw new GameFrameworkException("Package list can only contains 65535 resources in version 0.");
            }
            foreach (AssetBundleData assetBundleData in m_AssetBundleDatas.Values)
            {
                var abName = assetBundleData.Name.Split('/').Last();

                _assetBundleAssetPaths.Add(abName, new List <string>());

                string AbpackageListPath =
                    Icarus.GameFramework.Utility.Path.GetCombinePath(outputPackagePath,
                                                                     string.Format("{0}_{1}~{2}", abName, assetBundleData.Variant, VersionListFileName));
                using (FileStream fileStream = new FileStream(AbpackageListPath, FileMode.CreateNew, FileAccess.Write))
                {
                    using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
                    {
                        binaryWriter.Write(PackageListHeader);
                        binaryWriter.Write(PackageListVersion);
                        binaryWriter.Write(encryptBytes);

                        byte[] applicableGameVersionBytes = GetXorBytes(Icarus.GameFramework.Utility.Converter.GetBytes(ApplicableGameVersion), encryptBytes);
                        binaryWriter.Write((byte)applicableGameVersionBytes.Length);
                        binaryWriter.Write(applicableGameVersionBytes);
                        binaryWriter.Write(InternalResourceVersion);
                        if (m_AssetBundleDatas.Count > ushort.MaxValue)
                        {
                            throw new GameFrameworkException("Package list can only contains 65535 resources in version 0.");
                        }

                        _writerStr(encryptBytes, assetBundleData.Name, "AssetBundle name", binaryWriter);

                        _writerStr(encryptBytes, assetBundleData.GroupTag, "Group Tag", binaryWriter, false);

                        if (assetBundleData.Variant == null)
                        {
                            binaryWriter.Write((byte)0);
                        }
                        else
                        {
                            _writerStr(encryptBytes, assetBundleData.Variant, "AssetBundle variant", binaryWriter);
                        }

                        binaryWriter.Write((byte)assetBundleData.LoadType);
                        AssetBundleCode assetBundleCode = assetBundleData.GetCode(buildTarget);
                        binaryWriter.Write(assetBundleCode.Length);
                        binaryWriter.Write(assetBundleCode.HashCode);

                        string[] assetNames = assetBundleData.GetAssetNames();
                        binaryWriter.Write(assetNames.Length);
                        foreach (string assetName in assetNames)
                        {
                            _writerStr(Icarus.GameFramework.Utility.Converter.GetBytes(assetBundleCode.HashCode), assetName, "Asset name", binaryWriter);

                            _assetBundleAssetPaths[abName].Add(assetName);


                            AssetData assetData            = assetBundleData.GetAssetData(assetName);
                            string[]  dependencyAssetNames = assetData.GetDependencyAssetNames();
                            binaryWriter.Write(dependencyAssetNames.Length);
                            foreach (string dependencyAssetName in dependencyAssetNames)
                            {
                                _writerStr(Icarus.GameFramework.Utility.Converter.GetBytes(assetBundleCode.HashCode), dependencyAssetName, "Dependency asset name", binaryWriter);
                            }
                        }

                        binaryWriter.Write(0);

                        binaryWriter.Close();
                    }
                }

                var abVersionPath = Icarus.GameFramework.Utility.Path.GetResourceNameWithSuffix(AbpackageListPath);
                File.Move(AbpackageListPath, abVersionPath);

                #region Zip

                var zipPath     = outputPackagePath.Replace(OutputPackagePath, OutputZipPath);
                var abFullName  = GetAssetBundleFullName(assetBundleData.Name, assetBundleData.Variant);
                var zipFilePath = Path.Combine(zipPath, abFullName + ".zip");
                Runtime.Utility.ZipUtil.UpdateZipAdd(zipFilePath, outputPackagePath, new []
                {
                    abVersionPath,
                });
                #endregion
            }
        }