# swiftdc

> A Swift and Objective-C decompiler that prints ? instead of guessing

- Page: https://www.whatwemade.app/p/swiftdc
- What it is: Developer tool, for engineering
- Made by: [CamdenBopp](https://www.whatwemade.app/u/camdenbopp)
- Run it yourself: get the code and run your own copy
- Code: https://github.com/CamdenBopp/swiftdc (MIT, 3 stars)
- Languages: English
- Status: in progress, 60% built
- Wants contributors: Start with an issue labelled good first issue on GitHub. Each one says how to reproduce the problem and what done looks like. The most useful work is fixing wrong output and adding small test programs that reproduce it. CONTRIBUTING.md covers setup and how changes are checked.
- Tags: arm64, decompiler, reverse-engineering, swift, mach-o
- Upvotes: 2, comments: 0

## About

swiftdc decompiles Swift and Objective-C Mach-O binaries on Apple Silicon: apps, frameworks, dylibs, .ipa files and images in the dyld shared cache. It rebuilds Swift and Objective-C declarations from the runtime metadata, and turns ARM64 machine code into readable function bodies with if/else/while, named fields like self.breed, and recovered call arguments.

Its one firm rule is that it never guesses. When the analysis can't prove a value, name or condition, it prints ? instead. A wrong answer looks exactly like a right one, so a missing answer is the honest choice.

Most of what it recovers survives stripping, because Swift and Objective-C keep their type metadata in the binary. It's a command-line tool, MIT licensed, and looking for contributors: the repository has labelled good first issues.

## How it was made

- Claude Code, 75% of the work: Most of the analysis code, tests and documentation
- Codex, 25% of the work: Integration, and finishing some tickets
- Stack: Swift

## What you need to run it

- Tools: Xcode 26 (Swift 6.3), Go for the test fixtures (optional), OpenSSL 3 only for the device commands (optional)
- Platform: macOS on Apple Silicon arm64 Mac

Shared on WhatWeMade: https://www.whatwemade.app/p/swiftdc
