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.
This commit is contained in:
Erick Sanchez committed 2026-10-26 11:32:50 -06:00
1 parent 6db52d357a
commit a4f155eaa3
3 files changed
+10 -12

No files matched your search

+1 -3
View File
@@ -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.",
+4 -8
View File
@@ -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)
+5 -1
View File
@@ -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: