-
Notifications
You must be signed in to change notification settings - Fork 0
Building and Dependencies
Unspool is currently distributed as source. The validated development target is an Apple silicon Mac running macOS 26 or later with Xcode 27 or later.
git clone https://github.com/QenTerra/unspool.git
cd unspool
brew bundle
xcodegen generate --spec project.yml
open Unspool.xcodeprojProvide a locally built universal TDLib XCFramework at
Vendor/TDLib/TDLib.xcframework, then select the Unspool scheme and run on My
Mac.
Build commands use the active full-Xcode xcode-select path or a
caller-provided DEVELOPER_DIR. A conventional per-shell override is:
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"Adjust the path when Xcode uses another name or location.
project.yml is the source of truth for:
- deployment target;
- Swift language and strict-concurrency settings;
- app, unit-test, UI-test, and bridge targets;
- dependencies;
- Info.plist values;
- sandbox entitlements;
- shared scheme test targets.
After editing it, run:
xcodegen generate --spec project.ymlDo not hand-edit generated target membership as a lasting change.
| Component | Current repository pin or source | Purpose |
|---|---|---|
| TDLib | Commit 022d60202e446ad1287b9fb68e687c8a0760788b
|
Telegram protocol client |
| OpenSSL |
3.6.3 with committed archive SHA-256 |
Cryptography for locally built TDLib |
| SwiftUI, AppKit, Foundation, Observation, Security | Compatible Xcode/macOS SDK | UI and platform services |
| libc++, zlib, SQLite | macOS SDK/runtime | Native dependencies linked by the bridge |
Generated TDLib.xcframework contains arm64 and x86_64 slices but is not
committed. The automated app gate currently targets arm64.
Build TDLib from the official source using the revision and OpenSSL metadata
under Vendor/TDLib. Follow
TDLib's official build instructions.
The local XCFramework must contain arm64 and x86_64 slices and the JSON
interface headers. Do not mix a generated artifact with different committed
pin metadata.
Brewfile declares XcodeGen, SwiftFormat, SwiftLint, xcbeautify, CMake, Ninja,
pkg-config/pkgconf, gperf, OpenSSL 3, and PHP. Homebrew resolves current formula
versions; these tools are not shipped inside the app.
For exact licenses and update procedure, see Dependencies and Third-party notices.
Unspool is an independent project and is not affiliated with Telegram. Repository · Privacy · Security · MIT License
- Getting Started
- Detailed Telegram Setup
- Feature Overview
- Chats and History
- Attachments and Filenames
- Search and Selection
- Download Workflow
- Conflicts and Recovery
- Download History
- Settings
- Accessibility
- Troubleshooting
- Detailed Troubleshooting and FAQ
- Privacy and Security
- Detailed Security Model
- TDLib Integration
- Persistence
- Concurrency and Errors
- Glossary