# Technical Documentation: signalapp/Signal-iOS

> ℹ️ **Provenance:** Multi-Tier Ingestion · [CodeWiki Reference](https://codewiki.google/github.com/signalapp/Signal-iOS)

### Overview (`README.md`)

# Signal iOS

Signal is a free and open source messaging app for simple private communication with friends.

[](https://apps.apple.com/app/id874139669)

Also available on [Android](https://github.com/signalapp/signal-android) and [Desktop](https://github.com/signalapp/signal-desktop).

## Questions?

For troubleshooting and questions, please visit our [support center](https://support.signal.org/) or [unofficial community forum](https://community.signalusers.org/).

## Contributing Bug Reports

The best way to submit a bug report or support request is [via the Support Center](https://support.signal.org/hc/requests/new). Signal iOS doesn't collect any analytics or telemetry, and we rely on your feedback to help us troubleshoot and fix problems when something isn't working correctly.

## Contributing Code

Instructions for how to configure your development environment and build Signal iOS can be found in [BUILDING.md](https://github.com/signalapp/Signal-iOS/blob/main/BUILDING.md). We also recommend reading the [contribution guidelines](https://github.com/signalapp/Signal-iOS/blob/main/CONTRIBUTING.md).

## Contributing Ideas

Have something you want to say about Signal Foundation projects or want to be part of the conversation? Get involved in the [community forum](https://community.signalusers.org).

## Cryptography Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software.
BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.
See <http://www.wassenaar.org/> for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms.
The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

## License

Copyright 2013-2025 Signal Messenger, LLC

Licensed under the GNU AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html

_Apple and the Apple logo are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc., registered in the U.S. and other countries._

---

### Overview (`ThirdParty/blurhash/README.md`)

# blurhash

Vendored from [woltapp/blurhash](https://github.com/woltapp/blurhash) at commit
`0a1f97898d9eb8952bc528cd7a8ec73d9fecf5d0`.

- `Sources/blurhash/` holds upstream's `Swift/BlurHashDecode.swift` and `Swift/BlurHashEncode.swift`, unmodified.
- `License.txt` is upstream's `Swift/License.txt`, unmodified.
- `Package.swift` and `acknowledgement.json` are ours.

To update, copy those files from the new upstream commit, update the commit above, and run
`Scripts/generate_acknowledgements.py` if the license changed.

---

### Overview (`SignalServiceKit/Protos/Backups/README.md`)

# Backup protos

## `Swift-Protobuf`

We use [`Swift-Protobuf`](https://github.com/apple/swift-protobuf) to generate Swift code for working with `Backup.proto`, much like we do for all our other proto definitions.

However, unlike (most of) the other protos, we do not use the "wrapper" code generated by `$REPO_ROOT/Scripts/protos/ProtoWrappers.py` to wrap the `Swift-Protobuf`-generated code for Backups because `ProtoWrappers.py` is incompatible with some of the syntactic structures we use in `Backup.proto`.

---

### Overview (`SignalServiceKit/Protos/Specifications/README.md`)

# SignalServiceKit Protobufs

These protobuf definitions are the same as/compatible with Signal-Android and
Signal-Desktop, though modified slightly to match iOS conventions.

## Prerequisites

Install Apple's `swift-protobuf` (*not* the similarly named `protobuf-swift`)

    brew install swift-protobuf

This should install an up-to-date protobuf package as a dependency.

## Compiling Protos

    cd SignalServiceKit/Protos
    make

---

--- METRICS ---
- Files Extracted: 4
- Estimated Token Budget: ~1092 tokens
- Canonical Reference: https://codewiki.google/github.com/signalapp/Signal-iOS
