Git Product home page Git Product logo

ghostery / user-agent-ios Goto Github PK

View Code? Open in Web Editor NEW
72.0 17.0 25.0 185.35 MB

Ghostery iOS Browser

Home Page: https://apps.apple.com/us/app/ghostery-privacy-browser/id472789016

License: Mozilla Public License 2.0

Objective-C 0.55% Swift 77.40% HTML 15.59% CSS 0.51% JavaScript 4.10% Python 0.26% Ruby 0.27% Shell 0.14% TypeScript 1.18% C 0.01%
ios-app browser ghostery ghostery-browser

user-agent-ios's Introduction

User Agent iOS

User Agent is the internal name for the Ghostery iOS browser. A diferent name was chosen to highlight the new project, differentiate the project from the previous code bases, and to keep the option open to build multiple apps (e.g. Ghostery and Cliqz) out of the same codebase.

Requirements

Building the Code

  1. Clone the repository:
git clone [email protected]:ghostery/user-agent-ios.git
  1. Setup ASDF for nodejs and ruby
brew install asdf
asdf plugin add nodejs
asdf plugin add ruby
asdf install
  1. Run the bootstrap script to install dependencies
cd user-agent-ios
sh ./bootstrap.sh
  1. Open UserAgent.xcworkspace in Xcode.

Localization

Localization works as described in the Apple Documentation or this helpful tutorial. Strings files are included in the project and can be exported to and imported from Xliff files if necessary for translation by external translation agencies.

Strings files live in the Translations directory,

To test localization, you can edit your currently active scheme, and in "Options", set the "Application Language". Don't commit this change please.

Licensing

Code is licensed under the Mozilla Public License 2.0.

Contributor guidelines

General Guidelines

  • Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Creating a pull request

  • All pull requests must be associated with a specific Issue. If an issue doesn't exist please first create it.
  • Please fill out the pull request template to your best ability.

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.

user-agent-ios's People

Contributors

bkmunar avatar chrmod avatar darrinhenein avatar dependabot[bot] avatar dusek avatar eoger avatar farhanpatel avatar garvankeeley avatar isabelrios avatar jhugman avatar johennes avatar josephbk avatar justindarc avatar mauryat avatar mrachamallu avatar ncalexan avatar pavel-cliqz avatar rnewman avatar sdaswani avatar shahenant avatar simonbasca avatar st3fan avatar stancdam avatar thebnich avatar tylerlacroix avatar ugarlapati avatar varkor avatar vbudhram avatar wesj avatar winsmith avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

user-agent-ios's Issues

Fix Deprecation Build Warnings โš ๏ธ

The class GCDReadWriteLock in ReadWriteLock.swift throws deprecation warnings, specifically:

'OSAtomicCompareAndSwap32Barrier' was deprecated in iOS 10.0: Use atomic_compare_exchange_strong() from <stdatomic.h> instead

Fix Pod Warnings

[!] The `Shared [Debug]` target overrides the `OTHER_CFLAGS` build setting defined in `Pods/Target Support Files/Pods-Shared/Pods-Shared.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `Shared [Adhoc]` target overrides the `OTHER_CFLAGS` build setting defined in `Pods/Target Support Files/Pods-Shared/Pods-Shared.adhoc.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `Shared [Release]` target overrides the `OTHER_CFLAGS` build setting defined in `Pods/Target Support Files/Pods-Shared/Pods-Shared.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

Cleanup entitlement files

Currently we use Mozilla brands in entitlements file names. We likely need a single entitlement file.

Cleanup Carthage

  • Remove unused packages
  • Try to move needed packages to cocoapods

Update Readme

  • setup_build_tools.sh
  • Remove references to firefox

Cleanup Info Plist files

For Lumen, Ghostery, Cliqz:

  • Remove Fonts
  • Remove Adjust Config
  • Remove Leanplum Config
  • Add correct Bundle Identifiers
  • Remove Moz Development Team

Replace "Firefox" in all translations

Strings that mention Firefox should be accessible as static lazy variables that uses AppInfo displayName.

Translation keys should refer to UserAgent rather than to particular brand.

Example:
"Open in UserAgent" = "Open in %@"

Fix Failing Keychain Tests

The following tests fail on CI and have been disabled:

Failing tests:
	ClientTests:
		ProfileTest.testNewProfileClearsExistingAuthenticationInfo()
		TestBookmarks.testNewProfileClearsExistingAuthenticationInfo()
		TestFavicons.testNewProfileClearsExistingAuthenticationInfo()
		TestHistory.testNewProfileClearsExistingAuthenticationInfo()
	SharedTests:
		AuthenticationKeychainInfoTests.testEncodingAndDecoding()
		AuthenticationKeychainInfoTests.testNilIntervalsArentZero()

Investigate the reason behind the failure and fix it. Most likely a signing + keychain thing

re #63

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.