This repo contains the source code for the DuckDuckGo iOS and macOS browsers, and the libraries that are shared between them to provide cross-platform features.
We use submodules, so you will need to bring them into the project in order to build and run it:
Run git submodule update --init --recursive
If you're not part of the DuckDuckGo team, you should provide your Apple developer account id, app id, and group id prefix in an ExternalDeveloper.xcconfig
file. To do that:
- Run
cp iOS/Configuration/DuckDuckGoDeveloper.xcconfig iOS/Configuration/ExternalDeveloper.xcconfig
- Edit
iOS/Configuration/ExternalDeveloper.xcconfig
and change the values of all fields - Clean and rebuild the project
If you're not part of the DuckDuckGo team, go to Signing & Capabilities to select your team and custom bundle identifier.
We use Swift Package Manager for dependency management, which shouldn't require any additional set up.
We use SwifLint for enforcing Swift style and conventions, so you'll need to install it.
We have taken steps to update our terminology and remove words with problematic racial connotations, most notably the change to main
branches, allow lists
, and blocklists
.
Please refer to the contributing doc.
Contact us at https://duckduckgo.com/feedback if you have feedback, questions or want to chat. You can also use the feedback forms embedded within our mobile & desktop apps - to do so please navigate to the app's settings menu and select "Send Feedback".
DuckDuckGo is distributed under the Apache 2.0 license.