- Drop support for Swift 4.2 (#229)
- Drop CocoaPods support (#249)
- Add SPM support (#221)
- Bump deployment targets to iOS 13.0, macOS 10.15, and watchOS 6.0 (#245)
- Replace optional initializers with throwing initializers (#254)
- Use CryptoKit instead of CommonCrypto for HMAC generation (#214, #230, #244, #245, #256)
- Modernize project and tooling configurations (#228, #252, #253)
- Migrate CI from Travis to GitHub Actions (#231, #232, #243, #246, #251)
- Upgrade dependencies (#241, #233, #248)
3.2.0 (2019-09-20)
- Upgrade the source to compile with both Swift 4.2 and Swift 5. (#201, #202, #204, #209, #215, #216)
- Update the SwiftLint configuration, and move the SwiftLint build phase to a separate dedicated target so that new lint errors do not interfere with consumers of the framework. (#212, #206)
- Upgrade xcconfigs to enable new warnings introduced in Xcode 10.2 (#203)
3.1.5 (2019-04-11)
- Enable additional linting and CI testing. (#196, #192)
- Satisfy various project-level warnings introduced in Xcode 10.2. (#198)
3.1.4 (2018-09-15)
- Fix compilation errors and add CI testing for Xcode 10. (#182, #186)
- Enable several new SwiftLint opt-in rules. (#187)
3.1.3 (2018-04-29)
- Ignore un-deserializable tokens in
allPersistentTokens()
. (#179)
3.1.2 (2018-04-23)
- Synthesize Equatable conformance when compiling with Swift 4.1. (#173)
- Fix a warning about deprecation of cross-module struct initializers by simplifying test cases for impossible-to-create invalid Generators. (#174)
- Upgrade xcconfigs for Xcode 9.3. (#172)
- Enable several new SwiftLint opt-in rules. (#175)
3.1.1 (2018-03-31)
3.1 (2018-03-27)
- Upgrade to Swift 4 and Xcode 9. (#147, #149, #151, #153, #160)
- Handle keychain deserialization errors. (#161)
- Refactor token URL parsing. (#150)
- Refactor Generator validation. (#155)
- Update SwiftLint configuration and improve code formatting. (#148, #154, #159)
- Update CodeCov configuration. (#162)
3.0.1 (2018-03-08)
- Fix an issue where CocoaPods was trying to build OneTimePassword with Swift 4. (#157)
- Fix the Base32-decoding function in the token creation example code. (#134)
- Tweak the Travis CI configuration to work around test timeout flakiness. (#131)
- Clean up some old Keychain code which was used to provide Xcode 7 backwards compatibility. (#133)
3.0 (2017-02-07)
- Convert to Swift 3 and update the library API to follow the Swift API Design Guidelines. (#74, #78, #80, #91, #100, #111, #113, #122, #123, #125)
- Convert
password(at:)
to take aDate
instead of aTimeInterval
. (#124) - Update the SwiftLint configuration. (#120)
2.1.1 (2016-12-28)
- Configure Travis to build and test with Xcode 8.2. (#115)
- Add a test host app to enable keychain tests on iOS 10. (#116)
- Update the SwiftLint configuration for SwiftLint 0.15. (#117)
2.1 (2016-11-16)
- Add watchOS support. (#96, #98, #107)
- Inject Xcode path into the CommonCrypto modulemaps, to support non-standard Xcode locations. (#92, #101)
- Clean up project configuration and build settings. (#95, #97)
- Improve instructions and project settings to make setting up a new clone easier. (#104)
- Add tests for validation and parsing failures. (#105)
- Improve documentation comments. (#108)
- Refactor the Keychain tests to remove excessive nesting. (#109)
2.0.1 (2016-09-20)
- Update badge images and links in the README. (#69)
- Reorganize source and test files following the conventions the Swift Package Manager. (#70)
- Isolate the CommonCrypto dependency inside a custom wrapper function. (#71)
- Clean up whitespace. (#79)
- Integrate with codecov.io for automated code coverage reporting. (#82)
- Update SwiftLint configuration. (#87)
- Update Travis configuration to use Xcode 8. (#89)
2.0.0 (2016-02-07)
Version 2 of the OneTimePassword library has been completely redesigned and rewritten with a modern Swift API. The new library source differs too greatly from its predecessor for the changes to be representable in a changelog. The README has a usage guide for the new API.
Additional changes of note:
- The library is well-tested and the source fully documented.
- Carthage is used to manage dependencies, which are checked in as Git submodules.
- Travis CI is used for testing, and Hound CI for linting.
- The project now has a detailed README, as well as a changelog, guidelines for contributing, and a code of conduct.
Changes between prerelease versions of OneTimePassword version 2 can be found below.
2.0.0-rc (2016-02-07)
- Update
Token
tests for full test coverage. (#66) - Add installation and usage instructions to the README. (#63, #65, #67)
- Upgrade the Travis build configuration to use Xcode 7.2 and iOS 9.2. (#66)
- Add a README file to the CommonCrypto folder to explain the custom modulemaps. (#64)
- Assorted cleanup and formatting improvements. (#61, #62)
2.0.0-beta.5 (2016-02-05)
- Use custom
modulemap
s to link CommonCrypto, removing external dependency onsoffes/Crypto
(#57) - Make
jspahrsummers/xcconfigs
a private dependency. (#58) - Update
OneTimePassword.podspec
to build the new framework. (#59)
2.0.0-beta.4 (2016-02-04)
- Refactor and document new Swift framework
- Remove legacy Objective-C framework
- Add framework dependency for CommonCrypto
- Improve framework tests
2.0.0-beta.3 (2015-02-03)
- Add documentation comments to
Token
andGenerator
- Add static constants for default values
- Remove useless convenience initializer from
OTPToken
2.0.0-beta.2 (2015-02-01)
- Fix compatibility issues in OneTimePasswordLegacy
- Build and link dependencies directly, instead of relying on a pre-built framework
2.0.0-beta.1 (2015-02-01)
- Refactor
OTPToken
to prevent issues when creating invalid tokens - Improve testing of legacy tokens with invalid timer period or digits
- Turn off Swift optimizations in Release builds (to avoid a keychain access issue)
2.0.0-beta (2015-01-26)
- Convert the library to Swift and compile it into a Framework bundle for iOS 8+.
- Replace CocoaPods with Carthage for dependency management.
1.1.1 (2015-12-05)
- Bump deployment target to iOS 8 (the framework product was already unsupported on iOS 7) (#46, #48)
- Replace custom query string parsing and escaping with iOS 8's
NSURLQueryItem
. (#47) - Add
.gitignore
(#46) - Configure for Travis CI, adding
.travis.yml
and sharingOneTimePassword.xcscheme
(#46) - Update
Podfile
and check in the CocoaPods dependencies. (#46) - Update
.xcodeproj
version and specify project defaults for indentation and prefixing. (#49) - Add
README
with project description and a note linking to the latest version of the project (#50)