public static void BuildXCode(string channelName, bool isTest) { BuildTarget buildTarget = BuildTarget.iOS; PackageUtils.CopyAssetBundlesToStreamingAssets(buildTarget, channelName); LaunchAssetBundleServer.WriteAssetBundleServerURL(channelName); string buildFolder = Path.Combine(System.Environment.CurrentDirectory, XCodeOutputPath); buildFolder = Path.Combine(buildFolder, channelName); GameUtility.CheckDirAndCreateWhenNeeded(buildFolder); string iconPath = "Assets/Editor/icon/ios/{0}/{1}.png"; string[] iconSizes = new string[] { "180", "167", "152", "144", "120", "114", "76", "72", "57" }; List <Texture2D> iconList = new List <Texture2D>(); for (int i = 0; i < iconSizes.Length; i++) { Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath(string.Format(iconPath, channelName, iconSizes[i]), typeof(Texture2D)); iconList.Add(texture); } PlayerSettings.SetIconsForTargetGroup(BuildTargetGroup.iOS, iconList.ToArray()); BaseChannel channel = ChannelManager.instance.CreateChannel(channelName); PlayerSettings.applicationIdentifier = channel.GetBundleID(); PlayerSettings.productName = channel.GetPackageName(); PackageUtils.CheckAndAddSymbolIfNeeded(buildTarget, channelName); BuildPipeline.BuildPlayer(GetBuildScenes(), buildFolder, buildTarget, BuildOptions.None); }
public static void BuildAndroid(string channelName) { BuildTarget buildTarget = BuildTarget.Android; PackageUtils.CopyAssetBundlesToStreamingAssets(buildTarget, channelName); BaseChannel channel = ChannelManager.instance.CreateChannel(channelName); if (channel.HasAndroidSDK()) { CopyAndroidSDKResources(channelName); } LaunchAssetBundleServer.WriteAssetBundleServerURL(channelName); string buildFolder = Path.Combine(System.Environment.CurrentDirectory, ApkOutputPath); GameUtility.CheckDirAndCreateWhenNeeded(buildFolder); PlayerSettings.applicationIdentifier = channel.GetBundleID(); PlayerSettings.productName = channel.GetPackageName(); string savePath = null; if (channel.IsGooglePlay()) { savePath = Path.Combine(buildFolder, channelName); GameUtility.SafeDeleteDir(savePath); BuildPipeline.BuildPlayer(GetBuildScenes(), savePath, buildTarget, BuildOptions.AcceptExternalModificationsToPlayer); } else { savePath = Path.Combine(buildFolder, channel.GetPackageName() + "_" + channelName + "_" + PlayerSettings.bundleVersion + ".apk"); BuildPipeline.BuildPlayer(GetBuildScenes(), savePath, buildTarget, BuildOptions.None); } Debug.Log(string.Format("Build android player for : {0} done! output :{1}", channelName, savePath)); }
public static void BuildAndroid(string channelName, bool isTest) { BuildTarget buildTarget = BuildTarget.Android; PackageUtils.CopyAssetBundlesToStreamingAssets(buildTarget, channelName); if (!isTest) { LaunchAssetBundleServer.ClearAssetBundleServerURL(); } else { LaunchAssetBundleServer.WriteAssetBundleServerURL(); } BaseChannel channel = ChannelManager.instance.CreateChannel(channelName); SetPlayerSetting(channel); string savePath = PackageUtils.GetChannelOutputPath(buildTarget, channelName); string appName = channel.GetProductName() + ".apk"; if (channel.IsGooglePlay()) { savePath = Path.Combine(savePath, "GooglePlay"); UtilityGame.SafeDeleteDir(savePath); BuildPipeline.BuildPlayer(GetBuildScenes(), savePath, buildTarget, BuildOptions.AcceptExternalModificationsToPlayer); } else { savePath = Path.Combine(savePath, appName); BuildPipeline.BuildPlayer(GetBuildScenes(), savePath, buildTarget, BuildOptions.None); } string outputPath = Path.Combine(Application.persistentDataPath, AssetBundleConfig.AssetBundlesFolderName); UtilityGame.SafeDeleteDir(outputPath); Debug.Log(string.Format("Build android player for : {0} done! output :{1}", channelName, savePath)); }