From a4f155eaa35d610096287af5cd5757ae7432c217 Mon Sep 17 00:00:00 2001 From: Erick Sanchez <7268597+nalancer08@users.noreply.github.com> Date: Mon, 26 Oct 2026 11:32:50 -0600 Subject: [PATCH] Remove the cache-mode decision from the desktop interface Always use the validated normal build pipeline, which reuses unchanged stages. Keep app-only rebuilding as a developer CLI option and reduce the GUI disclosure to diagnostics and help. --- desktop/NxNativeEasy/Localization.swift | 4 +--- desktop/NxNativeEasy/main.swift | 12 ++++-------- docs/personal-ios.md | 6 +++++- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/desktop/NxNativeEasy/Localization.swift b/desktop/NxNativeEasy/Localization.swift index 9a1f3a8..dc39124 100644 --- a/desktop/NxNativeEasy/Localization.swift +++ b/desktop/NxNativeEasy/Localization.swift @@ -77,9 +77,7 @@ struct EasyStrings { "Mostrar datos romfs": "Show RomFS folder", "Abrir Sideloadly": "Open Sideloadly", "Primera instalación: instala la IPA ligera y copia romfs por Finder. Para actualizar, conserva la misma cuenta y bundle ID; no desinstales la app.": "First install: install the lightweight IPA, then copy romfs using Finder. For updates, keep the same account and bundle ID; do not uninstall the game.", - "Opciones y detalles": "Options and details", - "Recrear sólo la app con las cachés existentes": "Rebuild only the app using existing caches", - "Úsalo para actualizar el editor. Para una versión nueva del juego, déjalo desactivado. La primera preparación necesita Xcode y Homebrew instalados.": "Use this for editor updates. Leave it off for a new game version. First-time setup requires Xcode and Homebrew.", + "Detalles": "Details", "Guía de instalación": "Installation guide", "Copiar diagnóstico": "Copy diagnostics", "Preparación local. No se incluyen juegos ni llaves. La firma e instalación se hacen por separado en Sideloadly.": "Local preparation. Games and keys are not included. Signing and installation happen separately in Sideloadly.", diff --git a/desktop/NxNativeEasy/main.swift b/desktop/NxNativeEasy/main.swift index 55a35fc..b458a1c 100644 --- a/desktop/NxNativeEasy/main.swift +++ b/desktop/NxNativeEasy/main.swift @@ -24,7 +24,6 @@ struct GameCard: Identifiable { @Published var output: URL? @Published var assets: URL? @Published var failed = false - @Published var appOnly = false @Published var showDetails = false @Published var showCatalog = false @Published var catalog: [CatalogGame] = [] @@ -104,13 +103,12 @@ struct GameCard: Identifiable { guard FileManager.default.fileExists(atPath:script.path) else { phase="No encontramos el código de nxnative.";detail="Vuelve a crear la app desde el repositorio con Abrir-interfaz.command.";failed=true;return } - if !appOnly && keysFolder == nil {chooseKeysFolder()} - guard appOnly || keysFolder != nil else {return} + if keysFolder == nil {chooseKeysFolder()} + guard let keysFolder else {return} let task=Process();let pipe=Pipe() task.executableURL=URL(fileURLWithPath:"/usr/bin/python3") var arguments=[repo.appendingPathComponent("desktop/NxNativeEasy/build_session.py").path,script.path,folder.path] - if appOnly { arguments.append("--app-only") } - if !appOnly, let keysFolder {arguments += ["--keys-folder",keysFolder.path]} + arguments += ["--keys-folder",keysFolder.path] task.arguments=arguments;task.currentDirectoryURL=repo task.standardOutput=pipe;task.standardError=pipe var environment=ProcessInfo.processInfo.environment @@ -261,10 +259,8 @@ struct ContentView: View { .font(.system(size:12)).foregroundStyle(ink.opacity(0.8)) } }.padding(24).background(Color.white.opacity(0.045),in:RoundedRectangle(cornerRadius:20)) - DisclosureGroup(model.text("Opciones y detalles"),isExpanded:$model.showDetails) { + DisclosureGroup(model.text("Detalles"),isExpanded:$model.showDetails) { VStack(alignment:.leading,spacing:12) { - Toggle(model.text("Recrear sólo la app con las cachés existentes"),isOn:$model.appOnly).disabled(model.running) - Text(model.text("Úsalo para actualizar el editor. Para una versión nueva del juego, déjalo desactivado. La primera preparación necesita Xcode y Homebrew instalados.")).font(.system(size:12)).foregroundStyle(.gray) if !model.transcript.isEmpty { Text(model.text("Los detalles de compilación se muestran en su idioma original.")).font(.system(size:11)).foregroundStyle(.gray) ScrollView {Text(model.transcript).font(.system(size:10,design:.monospaced)).textSelection(.enabled).frame(maxWidth:.infinity,alignment:.leading)}.frame(height:180) diff --git a/docs/personal-ios.md b/docs/personal-ios.md index bd3a67a..da4c9e9 100644 --- a/docs/personal-ios.md +++ b/docs/personal-ios.md @@ -60,7 +60,11 @@ build; choose a known compatible target explicitly with `--gpu` when desired. Game versions are selected by upstream (newest present unless `--package` is set). An update may change RomFS, so only reuse phone data when that data are identical. -## Rebuild the app using existing caches +## Developer CLI: rebuild the app using existing caches + +The desktop interface always uses the normal pipeline, which validates and reuses +unchanged stages automatically. There is no cache-mode toggle for users to choose. +The app-only option below remains a developer CLI tool, outside the desktop flow. For editor/app-only changes on an already prepared game: