private static BuildSettings LoadBuildSettings() { BuildSettings buildSettings = new BuildSettings { BuildTarget = BuildTarget, BuildType = BuildType, BundleVersion = BundleVersion }; return buildSettings; }
public static BuildSettings Parse(string[] args) { OptionSet.Parse(args); BuildSettings buildSettings = new BuildSettings { BuildTarget = optionBuildTarget, BuildType = optionBuildType, BuildPath = optionBuildPath }; if (optionAndroidBundleVersionCode.HasValue) { buildSettings.Android.BundleVersionCode = optionAndroidBundleVersionCode.Value; } if (optionBundleVersion != null) { buildSettings.BundleVersion = optionBundleVersion; } return(buildSettings); }
/// <summary> /// Performs the build from the command line. /// Command line options: /// <para> /// buildTarget Platform to build. /// </para> /// <para> /// buildPath Path to store the build. /// </para> /// <para> /// buildType Type of configuration to build. /// </para> /// </summary> public void PerformBuild() { string[] args = Environment.GetCommandLineArgs(); BuildSettings buildSettings = null; try { buildSettings = BuildOptionSet.Parse(args); } catch (OptionException e) { Debug.LogError("BuildPlayer.PerformBuild: " + e.Message); EditorApplication.Exit(1); } bool success = this.PerformBuild(buildSettings); if (!success) { EditorApplication.Exit(1); } }
public void OnGUI() { BuildManager buildManager = new BuildManager(); EditorGUI.BeginChangeCheck(); GUILayout.Label("Settings", EditorStyles.boldLabel); this.buildSettings.BuildTarget = (BuildTarget)EditorGUILayout.EnumPopup("Build Target", this.buildSettings.BuildTarget); this.buildSettings.BuildType = (BuildType)EditorGUILayout.EnumPopup("Build Type", this.buildSettings.BuildType); this.buildSettings.BundleVersion = EditorGUILayout.TextField( new GUIContent("Bundle Version", "Version number which is displayed to user."), this.buildSettings.BundleVersion); // Additional settings depending on build target. if (this.buildSettings.BuildTarget == BuildTarget.Android) { EditorGUILayout.Separator(); GUILayout.Label("Android"); EditorGUI.indentLevel++; this.buildSettings.Android.BundleVersionCode = EditorGUILayout.IntField( "Bundle Version Code", this.buildSettings.Android.BundleVersionCode); EditorGUI.indentLevel--; } if (EditorGUI.EndChangeCheck()) { // Save build settings. BuildWizardPrefs.BuildSettings = this.buildSettings; } EditorGUILayout.Separator(); GUILayout.Label("Build", EditorStyles.boldLabel); if (InternalEditorUtility.HasPro()) { if (GUILayout.Button("Build")) { buildManager.PerformBuild(this.buildSettings); } GUILayout.Label("Manual Build", EditorStyles.boldLabel); } if (GUILayout.Button(new GUIContent("Prepare", "Prepares everything for the build."))) { // Store build settings for restore. if (previousBuildSettings == null) { previousBuildSettings = new BuildSettings(); } // Prepare build. EditorUserBuildSettings.SwitchActiveBuildTarget(this.buildSettings.BuildTarget); buildManager.PrepareBuild(this.buildSettings); Debug.Log("Build prepared for settings: " + this.buildSettings); } EditorGUILayout.HelpBox( "After 'Prepare' you have to perform the build by yourself via File/Build. Use 'Restore' afterwards.", MessageType.Info); if ( GUILayout.Button( new GUIContent("Restore", "Restores everything after a build to work again in the editor."))) { // Restore editor. buildManager.RestoreEditor(previousBuildSettings ?? new BuildSettings()); Debug.Log("Build restored for editor use."); } }
private static void SaveBuildSettings(BuildSettings buildSettings) { BuildTarget = buildSettings.BuildTarget; BuildType = buildSettings.BuildType; BundleVersion = buildSettings.BundleVersion; }
public void PrepareBuild(BuildSettings buildSettings) { this.OnPreBuild(buildSettings); this.SetBuildConfiguration(buildSettings); }
public static BuildSettings Parse(string[] args) { OptionSet.Parse(args); BuildSettings buildSettings = new BuildSettings { BuildTarget = optionBuildTarget, BuildType = optionBuildType, BuildPath = optionBuildPath }; if (optionAndroidBundleVersionCode.HasValue) { buildSettings.Android.BundleVersionCode = optionAndroidBundleVersionCode.Value; } if (optionBundleVersion != null) { buildSettings.BundleVersion = optionBundleVersion; } return buildSettings; }
private void SetBuildConfiguration(BuildSettings buildSettings) { BuildConfiguration buildConfiguration = null; switch (buildSettings.BuildType) { case BuildType.Debug: { buildConfiguration = this.BuildConfigurationDebug; } break; case BuildType.Release: { buildConfiguration = this.BuildConfigurationRelease; } break; } if (buildConfiguration != null) { // Setup build configuration. PlayerSettings.productName = buildConfiguration.ProductName; PlayerSettings.bundleIdentifier = buildConfiguration.AndroidBundleIdentifier; } // Setup special settings. PlayerSettings.keystorePass = this.AndroidKeystorePass; PlayerSettings.keyaliasPass = this.AndroidKeyaliasPass; PlayerSettings.bundleVersion = buildSettings.BundleVersion; PlayerSettings.Android.bundleVersionCode = buildSettings.Android.BundleVersionCode; EditorUserBuildSettings.development = buildSettings.BuildType == BuildType.Debug; switch (buildSettings.BuildTarget) { case BuildTarget.WSAPlayer: { PlayerSettings.productName = this.BuildConfigurationRelease.ProductName; } break; } }
private void OnPreBuild(BuildSettings buildSettings) { var handler = this.PreBuild; if (handler != null) { handler(buildSettings); } }
/// <summary> /// Restores everything after a build to work again in the editor. /// </summary> public void RestoreEditor(BuildSettings buildSettings = null) { if (this.BuildConfigurationEditor != null) { // Use build configuration of editor. PlayerSettings.productName = this.BuildConfigurationEditor.ProductName; PlayerSettings.bundleIdentifier = this.BuildConfigurationEditor.AndroidBundleIdentifier; } this.SetBuildConfiguration(buildSettings ?? this.EditorBuildSettings); this.OnPostBuild(); }
/// <summary> /// Performs the build of the specified target to the specified file path. /// </summary> /// <returns>True if the build was successful; otherwise, false.</returns> public bool PerformBuild(BuildSettings buildSettings) { Debug.Log(string.Format("Building with settings: {0}", buildSettings)); this.PrepareBuild(buildSettings); // Collect scenes. var scenes = UnityEditor.EditorBuildSettings.scenes.Select(scene => scene.path); foreach (var scene in scenes) { Debug.Log("Adding scene to build: " + scene); } // Make sure build directory exists. if (string.IsNullOrEmpty(buildSettings.BuildPath)) { buildSettings.BuildPath = this.EditorBuildSettings.GetDefaultBuildPath(buildSettings.BuildTarget); } string buildDirectory = Path.GetDirectoryName(buildSettings.BuildPath); if (buildDirectory != null) { Debug.Log(string.Format("Creating directory {0}", buildDirectory)); Directory.CreateDirectory(buildDirectory); } // Determine build options. BuildOptions buildOptions = BuildOptions.None; switch (buildSettings.BuildType) { case BuildType.Debug: { buildOptions = BuildOptions.Development | BuildOptions.AllowDebugging; } break; } // Build player. string errorMessage = BuildPipeline.BuildPlayer( scenes.ToArray(), buildSettings.BuildPath, buildSettings.BuildTarget, buildOptions); this.RestoreEditor(); return string.IsNullOrEmpty(errorMessage); }