|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +**Warning:** Features marked as *experimental* may change or be removed in a future release without notice. Use with caution. |
| 6 | + |
| 7 | +<!--## [Unreleased]--> |
| 8 | + |
| 9 | +## [2.1.1] |
| 10 | + |
| 11 | +### Fixed |
| 12 | + |
| 13 | +* Fix crash using the default `LCPDialogViewController` with CocoaPods. |
| 14 | + |
| 15 | + |
| 16 | +## [2.1.0] |
| 17 | + |
| 18 | +### Added |
| 19 | + |
| 20 | +* Support for Swift Package Manager (contributed by [@stevenzeck](https://github.com/readium/r2-lcp-swift/pull/121)). |
| 21 | + |
| 22 | + |
| 23 | +## [2.0.0] |
| 24 | + |
| 25 | +### Deprecated |
| 26 | + |
| 27 | +* All APIs deprecated in previous versions are now unavailable. |
| 28 | + |
| 29 | + |
| 30 | +## [2.0.0-beta.2] |
| 31 | + |
| 32 | +### Changed |
| 33 | + |
| 34 | +* We removed the dependency to the private `R2LCPClient.framework`, which means: |
| 35 | + * Now `r2-lcp-swift` works as a Carthage dependency, no need to use a submodule anymore. |
| 36 | + * You do not need to modify `r2-lcp-swift`'s `Cartfile` anymore to add the private `liblcp` dependency. |
| 37 | + * However, you must provide a facade to `LCPService` (see [README](README.md) for an example implementation). |
| 38 | +* The Renew Loan API got revamped to better support renewal through a web page. |
| 39 | + * You will need to implement `LCPRenewDelegate` to coordinate the UX interaction. |
| 40 | + * Readium ships with a default implementation `LCPDefaultRenewDelegate` to handle web page renewal with `SFSafariViewController`. |
| 41 | + |
| 42 | +### Fixed |
| 43 | + |
| 44 | +* Fixed really slow opening of large PDF documents. |
| 45 | + |
| 46 | + |
| 47 | +## [2.0.0-beta.1] |
| 48 | + |
| 49 | +### Changed |
| 50 | + |
| 51 | +* Upgraded shared dependencies. |
| 52 | + |
| 53 | + |
| 54 | +## [2.0.0-alpha.2] |
| 55 | + |
| 56 | +### Added |
| 57 | + |
| 58 | +* LCP implementation of the [Content Protection API](https://readium.org/architecture/proposals/006-content-protection) to work with the new [Streamer API](https://readium.org/architecture/proposals/005-streamer-api). |
| 59 | + * It is highly recommended that you upgrade to the new `Streamer` API to open publications, which will simplify DRM unlocking. |
| 60 | +* Two default implementations of `LCPAuthenticating`: |
| 61 | + * `LCPDialogAuthentication` to prompt the user for its passphrase with the official LCP dialog. |
| 62 | + * `LCPPassphraseAuthentication` to provide directly a passphrase, pulled for example from a database or a web service. |
| 63 | +* `LCPService.acquirePublication()` is a new API to acquire a publication from a standalone license. Compared to the former `importPublication()`: |
| 64 | + * It doesn't require the passphrase, to allow bulk imports. |
| 65 | + * It can be cancelled by calling `cancel()` on the returned `LCPAcquisition` object. |
| 66 | +* `LCPService.isLCPProtected()` provides a way to check if a file is protected with LCP. |
| 67 | + |
| 68 | +### Changed |
| 69 | + |
| 70 | +* `LCPAuthenticating` is now provided with more information and you will need to update your implementation. |
| 71 | + |
| 72 | +### Fixed |
| 73 | + |
| 74 | +* [Decrypting resources in some edge cases](https://github.com/readium/r2-lcp-swift/pull/94). |
| 75 | + |
| 76 | + |
| 77 | +## [2.0.0-alpha.1] |
| 78 | + |
| 79 | +### Added |
| 80 | + |
| 81 | +* Support for [PDF](https://readium.org/lcp-specs/notes/lcp-for-pdf.html) and [Readium Audiobooks](https://readium.org/lcp-specs/notes/lcp-for-audiobooks.html) protected with LCP. |
| 82 | + |
| 83 | +### Changed |
| 84 | + |
| 85 | +* `LCPAuthenticating` can now return hashed passphrases in addition to clear ones. [This can be used by reading apps](https://github.com/readium/r2-lcp-swift/pull/75) fetching hashed passphrases from a web service or [Authentication for OPDS](https://readium.org/lcp-specs/notes/lcp-key-retrieval.html), for example. |
| 86 | +* Provided `LCPAuthenticating` instances are now retained by the LCP service. Therefore, you can provide one without keeping a reference around in your own code. |
| 87 | + |
| 88 | + |
| 89 | +[unreleased]: https://github.com/readium/r2-lcp-swift/compare/master...HEAD |
| 90 | +[2.0.0-alpha.1]: https://github.com/readium/r2-lcp-swift/compare/1.2.3...2.0.0-alpha.1 |
| 91 | +[2.0.0-alpha.2]: https://github.com/readium/r2-lcp-swift/compare/2.0.0-alpha.1...2.0.0-alpha.2 |
| 92 | +[2.0.0-beta.1]: https://github.com/readium/r2-lcp-swift/compare/2.0.0-alpha.2...2.0.0-beta.1 |
| 93 | +[2.0.0-beta.2]: https://github.com/readium/r2-lcp-swift/compare/2.0.0-beta.1...2.0.0-beta.2 |
| 94 | +[2.0.0]: https://github.com/readium/r2-lcp-swift/compare/2.0.0-beta.2...2.0.0 |
| 95 | +[2.1.0]: https://github.com/readium/r2-lcp-swift/compare/2.0.0...2.1.0 |
| 96 | +[2.1.1]: https://github.com/readium/r2-lcp-swift/compare/2.1.0...2.1.1 |
0 commit comments