├── .gitignore
├── CONTRIBUTING.md
├── COPYING
├── COPYING.icons
├── Cartfile
├── Cartfile.resolved
├── FreeOTP.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── xcshareddata
│ └── xcschemes
│ └── FreeOTP.xcscheme
├── FreeOTP
├── AboutViewController.swift
├── AppDelegate.swift
├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ ├── 120.png
│ │ ├── 152.png
│ │ ├── 167.png
│ │ ├── 20.png
│ │ ├── 29.png
│ │ ├── 40-1.png
│ │ ├── 40-2.png
│ │ ├── 40.png
│ │ ├── 58.png
│ │ ├── 60.png
│ │ ├── 80.png
│ │ ├── 87.png
│ │ ├── Contents.json
│ │ ├── icon120.png
│ │ ├── icon180.png
│ │ ├── icon58.png
│ │ ├── icon76.png
│ │ ├── icon80.png
│ │ └── store.png
│ ├── Contents.json
│ ├── LockIcon.imageset
│ │ ├── Contents.json
│ │ └── LockIcon.pdf
│ ├── ShareIcon.imageset
│ │ ├── Contents.json
│ │ └── Share.pdf
│ └── SplashIcon.imageset
│ │ ├── Contents.json
│ │ ├── splash-icon.png
│ │ ├── splash-icon@2x.png
│ │ └── splash-icon@3x.png
├── Base.lproj
│ └── Main.storyboard
├── CircleProgressView.swift
├── Device.swift
├── EmptyStateView.swift
├── FontAwesomeIconCell.swift
├── FreeOTP-Bridging-Header.h
├── ImageDownloader.swift
├── Info.plist
├── KeychainStore.swift
├── Launch.storyboard
├── MainNavigationController.swift
├── ManualAddViewController.swift
├── ManualInputTokenData.swift
├── ManualToUrlcModule.swift
├── OTP.swift
├── RTLSupport.swift
├── RecommendedIconCell.swift
├── ScanViewController.swift
├── SectionHeader.swift
├── ShareViewController.swift
├── Style.swift
├── Token.swift
├── TokenCell.swift
├── TokenIcon.swift
├── TokenStore.swift
├── TokensViewController.swift
├── UICollectionViewFlowLayout.swift
├── URIIconViewController.swift
├── URILabelViewController.swift
├── URILockViewController.swift
├── URIMainIconViewController.swift
├── URIParameters.swift
├── default.png
├── en.lproj
│ └── InfoPlist.strings
├── iTunesArtwork@2x
├── lock.png
├── qrcode.png
└── token.png
├── FreeOTPTests
├── FreeOTPTests-Bridging-Header.h
├── HOTP.swift
├── Icon.swift
├── Info.plist
├── Storage.swift
├── TOTP.swift
└── URI.swift
├── FreeOTPUITests
├── FreeOTPUITests.swift
└── Info.plist
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | *.xcuserstate
2 | xcuserdata
3 | .DS_Store
4 | Carthage/*
5 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing Guide
2 |
3 | ## Pull Requests
4 |
5 | Pull requests (PRs) on GitHub are welcome under the Apache 2.0 license, see [COPYING](COPYING).
6 |
7 | To submit a PR, do the following:
8 |
9 | 1. Create your own [fork](https://help.github.com/github/getting-started-with-github/fork-a-repo)
10 | of the [freeotp-ios](https://github.com/freeotp/freeotp-ios) project.
11 | 2. Make a feature branch with your changes following the [feature branch workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow)
12 | 3. Commit and push your changes to the branch in your fork, adhering to the
13 | [commit message format](#commit-message-format).
14 | 4. Unless you have a large or complex PR,
15 | [squash your changes](https://medium.com/@slamflipstrom/a-beginners-guide-to-squashing-commits-with-git-rebase-8185cf6e62ec)
16 | into a single commit.
17 | 5. If your changes include updates to the user interface, attach [screenshots](#ui-changes) of
18 | your new or updated screens as comments in the PR.
19 |
20 | ## Commit Message Format
21 |
22 | Commits messages should adhere to the following structure:
23 |
24 | ```text
25 |
26 |
27 |
28 |
29 |