diff --git a/CHANGELOG.md b/CHANGELOG.md
index d013d3bc..7bb13ec3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,13 @@
+## [3.1.2][] (2018-04-23)
+- Synthesize Equatable conformance when compiling with Swift 4.1. ([#173](https://github.com/mattrubin/OneTimePassword/pull/173))
+- Fix a warning about deprecation of cross-module struct initializers by simplifying test cases for impossible-to-create invalid Generators. ([#174](https://github.com/mattrubin/OneTimePassword/pull/174))
+- Upgrade xcconfigs for Xcode 9.3. ([#172](https://github.com/mattrubin/OneTimePassword/pull/172))
+- Enable several new SwiftLint opt-in rules. ([#175](https://github.com/mattrubin/OneTimePassword/pull/175))
+
+
## [3.1.1][] (2018-03-31)
- Add support for Swift 4.1. ([#168](https://github.com/mattrubin/OneTimePassword/pull/168))
- Update build and linter settings for Xcode 9.3. ([#167](https://github.com/mattrubin/OneTimePassword/pull/167))
@@ -148,8 +155,9 @@ Changes between prerelease versions of OneTimePassword version 2 can be found be
## [1.0.0][] (2014-07-17)
-[develop]: https://github.com/mattrubin/OneTimePassword/compare/3.1.1...develop
+[develop]: https://github.com/mattrubin/OneTimePassword/compare/3.1.2...develop
+[3.1.2]: https://github.com/mattrubin/OneTimePassword/compare/3.1.1...3.1.2
[3.1.1]: https://github.com/mattrubin/OneTimePassword/compare/3.1...3.1.1
[3.1]: https://github.com/mattrubin/OneTimePassword/compare/3.0.1...3.1
[3.0.1]: https://github.com/mattrubin/OneTimePassword/compare/3.0...3.0.1
diff --git a/OneTimePassword.podspec b/OneTimePassword.podspec
index 437c2154..f988c7b4 100644
--- a/OneTimePassword.podspec
+++ b/OneTimePassword.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "OneTimePassword"
- s.version = "3.1.1"
+ s.version = "3.1.2"
s.summary = "A small library for generating TOTP and HOTP one-time passwords."
s.homepage = "https://github.com/mattrubin/OneTimePassword"
s.license = "MIT"
diff --git a/README.md b/README.md
index 8d98ce0f..1eb62664 100644
--- a/README.md
+++ b/README.md
@@ -52,7 +52,7 @@ Then run `pod install` to install the latest version of the framework.
## Usage
-> The [latest version][swift-4] of OneTimePassword uses Swift 4, and can be linked with Swift 3.2 projects using the Swift compiler's [compatibility mode](https://swift.org/blog/swift-4-0-released/#new-compatibility-modes). To use OneTimePassword with earlier versions of Swift, check out the [`swift-3`][swift-3] and [`swift-2.3`][swift-2.3] branches. To use OneTimePassword in an Objective-C based project, check out the [`objc` branch][objc] and the [1.x releases][releases].
+> The [latest version][swift-4] of OneTimePassword compiles with Swift 4.x, and can be linked with Swift 3.2+ projects using the Swift compiler's [compatibility mode](https://swift.org/blog/swift-4-0-released/#new-compatibility-modes). To use OneTimePassword with earlier versions of Swift, check out the [`swift-3`][swift-3] and [`swift-2.3`][swift-2.3] branches. To use OneTimePassword in an Objective-C based project, check out the [`objc` branch][objc] and the [1.x releases][releases].
[swift-4]: https://github.com/mattrubin/OneTimePassword/tree/swift-4
[swift-3]: https://github.com/mattrubin/OneTimePassword/tree/swift-3
diff --git a/Sources/Info.plist b/Sources/Info.plist
index ae3a3e0f..ba9f4e86 100644
--- a/Sources/Info.plist
+++ b/Sources/Info.plist
@@ -15,11 +15,11 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 3.1.1
+ 3.1.2
CFBundleSignature
????
CFBundleVersion
- 3.1.1
+ 3.1.2
NSPrincipalClass