Skip to content
This repository has been archived by the owner on Sep 2, 2022. It is now read-only.

Latest commit

 

History

History
96 lines (56 loc) · 3.97 KB

CHANGELOG.md

File metadata and controls

96 lines (56 loc) · 3.97 KB

Changelog

All notable changes to this project will be documented in this file.

Warning: Features marked as experimental may change or be removed in a future release without notice. Use with caution.

Fixed

  • Fix crash using the default LCPDialogViewController with CocoaPods.

Added

  • Support for Swift Package Manager (contributed by @stevenzeck).

Deprecated

  • All APIs deprecated in previous versions are now unavailable.

Changed

  • We removed the dependency to the private R2LCPClient.framework, which means:
    • Now r2-lcp-swift works as a Carthage dependency, no need to use a submodule anymore.
    • You do not need to modify r2-lcp-swift's Cartfile anymore to add the private liblcp dependency.
    • However, you must provide a facade to LCPService (see README for an example implementation).
  • The Renew Loan API got revamped to better support renewal through a web page.
    • You will need to implement LCPRenewDelegate to coordinate the UX interaction.
    • Readium ships with a default implementation LCPDefaultRenewDelegate to handle web page renewal with SFSafariViewController.

Fixed

  • Fixed really slow opening of large PDF documents.

Changed

  • Upgraded shared dependencies.

Added

  • LCP implementation of the Content Protection API to work with the new Streamer API.
    • It is highly recommended that you upgrade to the new Streamer API to open publications, which will simplify DRM unlocking.
  • Two default implementations of LCPAuthenticating:
    • LCPDialogAuthentication to prompt the user for its passphrase with the official LCP dialog.
    • LCPPassphraseAuthentication to provide directly a passphrase, pulled for example from a database or a web service.
  • LCPService.acquirePublication() is a new API to acquire a publication from a standalone license. Compared to the former importPublication():
    • It doesn't require the passphrase, to allow bulk imports.
    • It can be cancelled by calling cancel() on the returned LCPAcquisition object.
  • LCPService.isLCPProtected() provides a way to check if a file is protected with LCP.

Changed

  • LCPAuthenticating is now provided with more information and you will need to update your implementation.

Fixed

Added

Changed

  • LCPAuthenticating can now return hashed passphrases in addition to clear ones. This can be used by reading apps fetching hashed passphrases from a web service or Authentication for OPDS, for example.
  • Provided LCPAuthenticating instances are now retained by the LCP service. Therefore, you can provide one without keeping a reference around in your own code.