Skip to content
Ghostery Browser for iOS
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Account Firefox v14.x Dec 17, 2018
AccountTests Firefox v14.x Dec 17, 2018
AppiumTests
Client.xcodeproj
Client.xcworkspace New Freshtab implementation Mar 9, 2018
Client Updated app version May 17, 2019
ClientTests
Cliqz [IP-559] [Onboarding] First screen is missing May 23, 2019
Docs Firefox v12.x Aug 1, 2018
Extensions Updated app version May 17, 2019
FxA Firefox v14.x Dec 17, 2018
L10nSnapshotTests
MarketingUITests Firefox v14.x Dec 17, 2018
Providers Firefox v14.x Dec 17, 2018
Push Firefox v14.x Dec 17, 2018
PushTests
Shared merged master May 17, 2019
SharedTests
Storage Merge branch 'firefox-releases' into firefox-merge-v14 Dec 17, 2018
StoragePerfTests
StorageTests Firefox v14.x Dec 17, 2018
Sync Firefox v14.x Dec 17, 2018
SyncIntegrationTests Firefox v14.x Dec 17, 2018
SyncTelemetry
SyncTelemetryTests Firefox v14.x Dec 17, 2018
SyncTests Firefox v14.x Dec 17, 2018
ThirdParty Merge branch 'firefox-releases' into firefox-merge-v14 Dec 17, 2018
UITests Firefox v14.x Dec 17, 2018
UnitTests Commented Logoloader tests Nov 22, 2018
XCUITests Firefox v14.x Dec 17, 2018
fastlane Fix Environment taken by Fastlane May 20, 2019
test-fixtures Firefox v14.x Dec 17, 2018
.gitattributes Firefox v12.x Aug 1, 2018
.gitignore Added Podfile.lock Feb 6, 2019
.swiftlint.yml
AUTHORS Firefox v12.x Aug 1, 2018
BondAPI.podspec Bond API integration Nov 19, 2018
Cartfile Resolve conflicts after merging with Firefox v14.x Dec 19, 2018
Cartfile.resolved Resolve conflicts after merging with Firefox v14.x Dec 19, 2018
Client-Bridging-Header.h Merge branch 'firefox-releases' into firefox-merge-v12 Aug 2, 2018
Dangerfile Firefox v12.x Aug 1, 2018
Gemfile force the exact version of cocoapods Mar 20, 2019
ISSUE_TEMPLATE.md Firefox v12.x Aug 1, 2018
Jenkinsfile Resolve conflicts after merging with Firefox v14.x Dec 19, 2018
Jenkinsfile.nightly Add nightly builds on production May 16, 2019
Jenkinsfile.publish Add timeout and Faliure email notification Apr 30, 2019
L10nSnapshotTests-Info.plist
LICENSE Firefox v12.x Aug 1, 2018
Leanplum.json Firefox v12.x Aug 1, 2018
LumenJenkinsfile.nightly
MMA.md Firefox v12.x Aug 1, 2018
NotificationService.entitlements
PULL_REQUEST_TEMPLATE Firefox v12.x Aug 1, 2018
Podfile [IP-409] Re-enable RevenueCat Apr 4, 2019
Podfile.lock update to latest react-native Apr 11, 2019
README.md Update readme & remove RealmSwift Apr 11, 2019
Romefile Firefox v12.x Aug 1, 2018
SendTo.entitlements [IB2-22] Configured Fastlane Mar 6, 2018
Today.entitlements
_empty.js Setup React Feb 27, 2018
azure-pipelines.yml Enforce Azure to use specific pod version Mar 28, 2019
bootstrap.sh Initial FF project(10.x) Jan 31, 2018
buddybuild_carthage_command.sh
buddybuild_postbuild.sh Firefox v14.x Dec 17, 2018
buddybuild_postclone.sh Firefox v14.x Dec 17, 2018
buddybuild_prebuild.sh Firefox v14.x Dec 17, 2018
codecov.yml Firefox v12.x Aug 1, 2018
index.js
l10n-screenshots.sh
lumen.js [IP-281] Switch extension configs Mar 7, 2019
package-lock.json [IP-530]: Update extension to fix missing telemetry signals May 8, 2019
package.json [IP-530]: Update extension to fix missing telemetry signals May 8, 2019
rn-cli.config.js update to latest react-native Apr 11, 2019
setup.js
setup_build_tools.sh Initial FF project(10.x) Jan 31, 2018
shipping_locales.txt
webpack.config.js Firefox v14.x Dec 17, 2018

README.md

Cliqz for iOS

This branch (master) Build Status

This branch is for mainline development.

This branch only works with Xcode 10.1 and supports iOS 11 and above.

This branch is written in Swift 4

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

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.

Building the code

As of April 2019, this project requires the following versions of dependencies:

  • MacOS Mojave
  • Xcode 10.1
  • Node.js 9
  • Cocoapods 1.5.3

Make sure you have homebrew installed:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update

Then setup the project following these steps:

  1. Install Xcode 10.1
  • Open the .xip archive
  • Move Xcode to Application folder
  • Setup Xcode and install CLI tools with the following commands:
sudo xcode-select -switch /Applications/Xcode.app
xcode-select --install
  1. Install Node.js 9 (recommended: use nvm) + latest npm (this assumes you are using bash as your shell, if not, replace bash by your shell in the following commands):
brew install curl
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
source ~/.bashrc
nvm install 9
npm install -g npm@latest
  1. Install Carthage
brew install carthage
  1. Install Ruby bundler:
sudo gem install bundler
bundle install
  1. Install cocoadpods version 1.5.3
sudo gem install cocoapods -v 1.5.3
  1. Fork the repository https://github.com/ghostery/browser-ios from GitHub UI
  2. Clone the forked repository + add upstream remote:
git clone https://github.com/YOUR_USERNAME/ghostery-ios
cd ghostery-ios
git remote add upstream https://github.com/ghostery/browser-ios
git fetch upstream
git checkout upstream/master
git checkout -b my-working-branch
  1. Pull in the project dependencies:
sh ./bootstrap.sh
npm ci
npm run bundle-lumen
# Or for Ghostery: npm run bundle-ghostery
bundle exec pod install
npm run postinstall
  1. Open Client.xcworkspace in Xcode.
  2. Build the Fennec scheme in Xcode.

Note: When you run bundle install, you might get following error An error occurred while installing unf_ext (0.0.7.5), and Bundler cannot continue.. Above error happens with ruby 2.5.1. Just make sure to use 2.5.3 ruby version rvm use 2.5.3 and problem will be fixed.

Building User Scripts

User Scripts (JavaScript injected into the WKWebView) are compiled, concatenated and minified using webpack. User Scripts to be aggregated are placed in the following directories:

/Client
|-- /Frontend
    |-- /UserContent
        |-- /UserScripts
            |-- /AllFrames
            |   |-- /AtDocumentEnd
            |   |-- /AtDocumentStart
            |-- /MainFrame
                |-- /AtDocumentEnd
                |-- /AtDocumentStart

This reduces the total possible number of User Scripts down to four. The compiled output from concatenating and minifying the User Scripts placed in these folders resides in /Client/Assets and are named accordingly:

  • AllFramesAtDocumentEnd.js
  • AllFramesAtDocumentStart.js
  • MainFrameAtDocumentEnd.js
  • MainFrameAtDocumentStart.js

To simplify the build process, these compiled files are checked-in to this repository. When adding or editing User Scripts, these files can be re-compiled with webpack manually. This requires Node.js to be installed and all required npm packages can be installed by running npm install in the root directory of the project. User Scripts can be compiled by running the following npm command in the root directory of the project:

npm run build

Contributor guidelines

Swift style

Whitespace

  • New code should not contain any trailing whitespace.
  • We recommend enabling both the "Automatically trim trailing whitespace" and "Including whitespace-only lines" preferences in Xcode (under Text Editing).
  • git rebase --whitespace=fix can also be used to remove whitespace from your commits before issuing a pull request.

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.
You can’t perform that action at this time.