• This repository has been archived on 10/May/2024
  • Stars
    star
    1,701
  • Rank 27,447 (Top 0.6 %)
  • Language
    Swift
  • License
    Mozilla Public Li...
  • Created almost 7 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Brave iOS Browser

Build

Brave for iOS 🦁

Download on the App Store.

This branch (development)

This branch is for mainline development that will ship in the next release.

This branch currently supports iOS 15+, and is written in Swift 5.

Please make sure you aim your pull requests in the right direction.

For bug fixes and features for the upcoming release, please see the associated GitHub milestones (e.g. 2.1.3).

Getting involved

We encourage you to participate in this open source project. We love Pull Requests, Bug Reports, ideas, (security) code reviews or any kind of positive contribution.

Want to contribute but don't know where to start? Here is a list of Good First Issues.

Building the code

  1. Install the latest Xcode developer tools from Apple. (Xcode 14.0 and up required).
  2. Install Xcode Command Line Tools
    xcode-select --install
  3. Make sure npm is installed, node version 16 is recommended
  4. Install SwiftLint (0.50.0 or higher):
    brew update
    brew install swiftlint
  5. Clone the repository:
    git clone https://github.com/brave/brave-ios.git
  6. Pull in the project dependencies:
    cd brave-ios
    sh ./bootstrap.sh --ci
  7. Add a symlink to npm (M1 Macs)
    sudo ln -s $(which npm) /usr/local/bin/npm
    sudo ln -s $(which node) /usr/local/bin/node
  8. Open App/Client.xcodeproj in Xcode.
  9. Build the Debug scheme in Xcode.

Working with BraveCore

Many features in iOS (sync, ads, wallet, etc.) are powered by shared code in brave-core. Instructions on building and updating this code can be found here

Contributor guidelines

Creating a pull request

  • All pull requests must be associated with a specific GitHub issue.
  • If a bug corresponding to the fix does not yet exist, please file it.
  • Please use the following formats in your PR titles:
      Fix/Ref #<issueId>: <description>.
      Examples:
      Fix #102: Added Face ID usage description to plist.
      Ref #102: Fixed type on Face ID usage description.
  • Add any additional information regarding the PR in the description.
  • In the unlikely and rare situation that a PR fixing multiple, related issues separate issue numbers with a comma:
      Fix #159, Fix #160: Removed whitepsace for + button on right-side panel.
  • PRs will be squashed and merged, so it is important to keep PRs focused on specific tasks.

Swift style

Whitespace

  • New code should not contain any trailing whitespace.
  • We recommend enabling the "Automatically trim trailing whitespace" and keeping "Including whitespace-only lines" deselected in Xcode (under Text Editing).

Commits

  • Each commit should have a single clear purpose. If a commit contains multiple unrelated changes, those changes should be split into separate commits.
  • If a commit requires another commit to build properly, those commits should be squashed.
  • Follow-up commits for any review comments should be squashed. Do not include "Fixed PR comments", merge commits, or other "temporary" commits in pull requests.

In most cases Pull Request commits will remain intact with a merge commit on the targeted branch.

Code Signing

  1. After running the bootstrap.sh script in the setup instructions navigate to:
    App/Configuration/Local/DevTeam.xcconfig
  2. Add your Apple Team ID in this file:
    LOCAL_DEVELOPMENT_TEAM = KL8N8XSYF4

Team IDs look identical to provisioning profile UUIDs, so make sure this is the correct one.

The entire Local directory is included in the .gitignore, so these changes are not tracked by source control. This allows code signing without making tracked changes. Updating this file will only sign the Debug target for local builds.

Finding Team IDs

The easiest known way to find your team ID is to log into your Apple Developer account. After logging in, the team ID is currently shown at the end of the URL:
https://developer.apple.com/account/<TEAM ID>

Use this string literal in the above, DevTeam.xcconfig file to code sign

Attribution

This repository is a fork of Firefox iOS Browser

More Repositories

1

brave-browser

Brave browser for Android, iOS, Linux, macOS, Windows.
JavaScript
17,685
star
2

browser-laptop

[DEPRECATED] Please see https://github.com/brave/brave-browser for the current version of Brave
JavaScript
7,943
star
3

brave-core

Core engine for the Brave browser for mobile and desktop. For issues https://github.com/brave/brave-browser/issues
HTML
2,477
star
4

adblock-rust

Brave's Rust-based adblock engine
Rust
1,419
star
5

link-bubble

Brave Link Bubble Browser
Java
1,014
star
6

muon

[DEPRECATED] Build browsers and browser like applications with HTML, CSS, and JavaScript
C++
970
star
7

goggles-quickstart

Educational material to learn about Goggles and how to create your own.
579
star
8

brave-ui

List of reusable React components to empower your brave UI
TypeScript
475
star
9

adblock-lists

Maintains adblock lists that Brave uses
Adblock Filter List
334
star
10

sync

deprecated Brave sync server. (sync now uses a fork of the Chromium sync protocol.)
JavaScript
206
star
11

go-sync

Brave sync server v2
Go
187
star
12

brave-talk

Unlimited private video calls with your friends and colleagues
TypeScript
112
star
13

adblock-resources

Custom resources and scriptlets used for Brave's adblocker
JavaScript
70
star
14

tracking-protection

Tracking protection engine used in the Brave browser for list like disconnectme.
C++
63
star
15

sta-rs

Rust
55
star
16

ledger

Deprecated, please see
JavaScript
53
star
17

web-discovery-project

Web Discovery Project
JavaScript
50
star
18

ethereum-remote-client

Integrated customization of MetaMask for use in Brave
JavaScript
49
star
19

news-aggregator

Python
48
star
20

adblock-rust-ffi

An FFI crate to expose functionality from brave/adblock-rust
Rust
46
star
21

leo

Design tokens for the Brave's design system known as Leo
Svelte
45
star
22

brave-extension

Shields panel browser action extension for the Brave browser
TypeScript
43
star
23

brave-core-crx-packager

JavaScript
41
star
24

kuchikiki

(口利き) HTML tree-manipulation library for Rust
Rust
34
star
25

go-translate

Translation adapter / relay server for Brave
Go
32
star
26

brave-wallet-docs

Documentation for the Brave Wallet docs site
JavaScript
31
star
27

brave-site-specific-scripts

a.k.a. Greaselion
TypeScript
31
star
28

crypto

shared crypto utils for Brave Browser
JavaScript
28
star
29

go-update

Component update server for brave-core written in Go
Go
28
star
30

nitriding-daemon

Tool kit for building secure, scalable, and networked services on top of AWS Nitro Enclaves.
Go
26
star
31

ads-ui

Self-service ads UI
TypeScript
23
star
32

muon-quick

JavaScript
22
star
33

qa-resources

HTML
21
star
34

omaha

Omaha for brave-browser
C++
20
star
35

brave-variations

Resources to compile, publish and inspect the variations seed file
TypeScript
20
star
36

token-lists

Manages custom token lists for Brave Wallet
JavaScript
20
star
37

tor_build_scripts

Build scripts for tor binary
Shell
20
star
38

brave-talk-gcalendar-extension

A Chrome extension for Calendar integrations for Brave Talk
TypeScript
20
star
39

source-suggestions

Python
19
star
40

viproxy

Go TCP proxy library that translates between AF_INET and AF_VSOCK.
Go
19
star
41

vault-updater

Laptop browser update service
JavaScript
19
star
42

zerotrace

Go package that provides an implementation of the 0trace traceroute technique to determine the round trip time to a remote client.
Go
19
star
43

nitriding

Tool kit for building networked services on top of AWS Nitro Enclaves.
Go
19
star
44

vault

Brave personal data store vault.
JavaScript
19
star
45

pull-merge

LLM Capabilities for your pull-requests
JavaScript
19
star
46

https-everywhere-builder

Build HTTPS Everywhere ruleset files for Brave
JavaScript
17
star
47

security-action

Composite GitHub CI Action containing the minimal viable security lint for brave repositories
JavaScript
17
star
48

tokenizer

A modular resource tokenization service.
Go
16
star
49

pagegraph-crawl

Gather pagegraph data from all over the internet
JavaScript
16
star
50

referrer-whitelist

15
star
51

bat-community-website

Official BAT Community website.
HTML
14
star
52

wallet-standard-brave

TypeScript
14
star
53

brave-release

Project to build packages that install repos and keyrings
Shell
13
star
54

swap

Brave Swap monorepo
TypeScript
12
star
55

brave-rewards-ios

Brave Rewards UI & Implementation on iOS
Swift
11
star
56

store-brave-com

TypeScript
10
star
57

brave-chromium-themes

Brave Themes
9
star
58

slim-list-lambda

Lambda function for reducing EasyList + EasyPrivacy for use in iOS clients
JavaScript
9
star
59

autoplay-whitelist

C++
9
star
60

extension-whitelist

C++
9
star
61

devops-github-workflows

9
star
62

https-everywhere-lib-cpp

C++ FFI bindings to the EFF HTTPS Everywhere library
Rust
9
star
63

simplepadding

Python
8
star
64

browser-laptop-releases

Published releases for brave/browser-electron used by brave/electron-prebuilt
HTML
8
star
65

ads-manager-landing-page

HTML
8
star
66

ledger-publisher

Deprecated, please see
JavaScript
8
star
67

constellation-processors

Server-side collector and aggregator for recovering data protected by the Constellation/nested STAR protocol.
Rust
7
star
68

muon-winstaller

Creates windows installers for Brave (forked originally from electron-winstaller
JavaScript
7
star
69

nlp-pipelines

NLP pipelines for in-browser functionality
Jupyter Notebook
7
star
70

star-randsrv

Go wrapper service for the STAR randomness server.
Rust
7
star
71

scproxy

Multi tiered redis proxy hack for sccache (wip)
Go
6
star
72

sdebug

a wrapper around debug() to add structured data logging
JavaScript
6
star
73

brave-ad-service

Documentation and Specs related to the Brave Ad Service
6
star
74

install-cmake

Download and compile CMake for subsequent use by npm installations
JavaScript
5
star
75

bitgo-client

JavaScript
5
star
76

sugarcoat-pipeline

CLI that implements the SugarCoat pipeline
JavaScript
5
star
77

omaha-build

[WIP] Windows omaha client
PowerShell
5
star
78

user-studies-extension

JavaScript
5
star
79

git-secrets-unittest

Python
5
star
80

svg-resizer

JavaScript
5
star
81

transparency-report-generator

TypeScript
5
star
82

release-tools

Release tools for browser-laptop and extensions
JavaScript
5
star
83

php-coding-standards

PHP Coding Standards for Brave.com
5
star
84

webkit-cpu-profiler-tools

WebKit CPU Profile tools
JavaScript
5
star
85

ledger-client

Deprecated, please see
JavaScript
5
star
86

ad-block-visualize

Tools to help visualize ad-block list data.
JavaScript
5
star
87

constellation

Rust
5
star
88

site-hacks-extension

Experiment moving the site hacks into an extension for use in Brave
JavaScript
5
star
89

node-anonize2-relic-emscripten

Node bindings to the anonize2 library, using the RELIC toolkit and Emscripten.
C
5
star
90

go-sync-adm-tools

Go
5
star
91

ledger-geoip

Find the geoip information for an IP address, do so using a list of geoip reporters that is weighted over time.
JavaScript
5
star
92

playlist-component

JavaScript
4
star
93

ledger-balance

Deprecated, please see
JavaScript
4
star
94

mixpanel-android

Java
4
star
95

link-bubble-website

http://linkbubble.com
HTML
4
star
96

debug-symbol-fetcher

This repository fetches debug symbols for brave browser builds
Shell
4
star
97

brave-tipping-extension

4
star
98

httpse2ios

Converts HTTPSE xml rules to iOS Content Blocking API format
JavaScript
4
star
99

https-everywhere-ruleset

Fork of the last freely-licensed copy of the EFF HTTPS Everywhere ruleset
4
star
100

node-anonize2-relic

Node bindings to the anonize2 library, using the RELIC toolkit.
C
4
star