How rockbruno/swiftshield works
SwiftShield is a command-line Swift obfuscator: it discovers Xcode targets and compiler arguments, uses SourceKit indexing to identify declarations and references, rewrites source names, and emits a conversion map. A separate command uses that map to restore names in crash logs. The graph follows the sampled CLI, controller, interactor, project-discovery, and obfuscator code; some internal relationships rely on the SOURCE INDEX or README rather than full source excerpts.
Main entry points: SwiftShieldAssembler.swift Dependency assembly · SwiftShieldInteractor.swift Workflow interactor · SourceKitObfuscator.swift SourceKit obfuscator · SchemeInfoProvider.swift Scheme discovery
Components 18
CLI and orchestration
- CLI commands
Sources/swiftshield/main.swift - Dependency assembly
Sources/SwiftShieldCore/Controller/SwiftShieldAssembler.swift - Run controller
Sources/SwiftShieldCore/Controller/SwiftShieldController.swift - Workflow interactor
Sources/SwiftShieldCore/Interactor/SwiftShieldInteractor.swift - Logger
Sources/SwiftShieldCore/Log/Logger.swift
Project discovery
- Scheme discovery
Sources/SwiftShieldCore/ProjectRunner/SchemeInfoProvider.swift - Task runner
Sources/SwiftShieldCore/ProjectRunner/TaskRunner/TaskRunner.swift - Target modules
Sources/SwiftShieldCore/BaseModels/Module.swift
Source obfuscation
- SourceKit obfuscator
Sources/SwiftShieldCore/Obfuscator/SourceKitObfuscator.swift - Index data store
Sources/SwiftShieldCore/Obfuscator/SourceKitObfuscatorDataStore.swift - Indexed file
Sources/SwiftShieldCore/Obfuscator/IndexedFile.swift - SourceKit wrapper
Sources/SwiftShieldCore/SourceKit/SourceKit.swift - Conversion map
Sources/SwiftShieldCore/ConversionMap.swift
Crash recovery
- Crash deobfuscator
Sources/SwiftShieldCore/Deobfuscator/Deobfuscator.swift
Other components
- Engineer
- Xcode build
- Project files
- Crash log
Connections 24
- Engineer → CLI commands: runs
Sources/swiftshield/main.swift - CLI commands → Dependency assembly: assembles
Sources/swiftshield/main.swift - CLI commands → Crash deobfuscator: invokes
Sources/swiftshield/main.swift - Dependency assembly → Run controller: constructs
Sources/SwiftShieldCore/Controller/SwiftShieldAssembler.swift - Dependency assembly → Workflow interactor: constructs
Sources/SwiftShieldCore/Controller/SwiftShieldAssembler.swift - Dependency assembly → Scheme discovery: constructs
Sources/SwiftShieldCore/Controller/SwiftShieldAssembler.swift - Dependency assembly → SourceKit obfuscator: constructs
Sources/SwiftShieldCore/Controller/SwiftShieldAssembler.swift - Dependency assembly → Logger: constructs
Sources/SwiftShieldCore/Controller/SwiftShieldAssembler.swift - Run controller → Workflow interactor: runs workflow
Sources/SwiftShieldCore/Controller/SwiftShieldController.swift - Workflow interactor → Scheme discovery: discovers modules
Sources/SwiftShieldCore/Interactor/SwiftShieldInteractor.swift - Scheme discovery → Task runner: runs build
Sources/SwiftShieldCore/ProjectRunner/SchemeInfoProvider.swift - Xcode build → Scheme discovery: provides build output
Sources/SwiftShieldCore/ProjectRunner/SchemeInfoProvider.swift - Scheme discovery → Target modules: parses targets
Sources/SwiftShieldCore/ProjectRunner/SchemeInfoProvider.swift - Workflow interactor → SourceKit obfuscator: registers and obfuscates
Sources/SwiftShieldCore/Interactor/SwiftShieldInteractor.swift - SourceKit obfuscator → SourceKit wrapper: queries index
Sources/SwiftShieldCore/Obfuscator/SourceKitObfuscator.swift - SourceKit obfuscator → Index data store: stores index data
Sources/SwiftShieldCore/Obfuscator/SourceKitObfuscator.swift - Index data store → Indexed file: tracks files
Sources/SwiftShieldCore/Obfuscator/SourceKitObfuscatorDataStore.swift - SourceKit obfuscator → Conversion map: produces map
Sources/SwiftShieldCore/Obfuscator/SourceKitObfuscator.swift - Workflow interactor → Conversion map: formats map
Sources/SwiftShieldCore/Interactor/SwiftShieldInteractor.swift - Workflow interactor → Run controller: prepares file contents
Sources/SwiftShieldCore/Interactor/SwiftShieldInteractor.swift - Run controller → Project files: writes changes
Sources/SwiftShieldCore/Controller/SwiftShieldController.swift - Conversion map → Project files: writes map
- Crash deobfuscator → Crash log: rewrites names
Sources/SwiftShieldCore/Deobfuscator/Deobfuscator.swift - Crash deobfuscator → Conversion map: reads map
Sources/SwiftShieldCore/Deobfuscator/Deobfuscator.swift