Version 4.0 is a major new release. We’ve created a convenient migration guide to make upgrading as simple as possible.
The biggest news is that PSPDFKit is now fully compatible with iOS 8 and requires Xcode 6 with SDK 8. There have been a lot of changes, updating everything was a lot of effort. We still support iOS 7 but dropped iOS 6 and updated many places in the code to use more modern API calls, to better future-proof the product. Following Apple’s new defaults, we removed the slice for armv7s and ship the binary with all platforms Apple supports (armv7, arm64, i386 and x86_64).
We’ve added @3x resources for all assets to provide a crisp and clear look on the new iPhone 6 Plus which has an even higher pixel density.
Several properties that were no longer in line with iOS 7 have been removed:
UIAppearance to customize colors and tint throughout PSPDFKit instead. An important change is that we no longer support the legacy
UIViewControllerBasedStatusBarAppearance setting. Use view controller based status bar appearance instead. We’ve also switched to
NSURLSession internally, which enables SPDY support for faster asset fetching (if your server supports that).
Part of the API cleaning was the introduction of a new immutable configuration object that unifies most of the possible settings in PSPPDFKit. This makes customizing a lot simpler, plus
PSPDFConfiguration itself can be stored so different configurations can be applied easily. See our PSPDFCatalog for many samples how to use it. The pattern we use here is called the “builder pattern” and you’ll find that in modern Apple API such as
WKWebView as well.
Previously, there were some limitations for unusual document formats, specifically a limitation for super long/wide PDFs. This has been removed. PSPDFKit now correctly renders documents no matter how long they are - we tested documents up to 5000px long/500px wide. There are many other tweaks as well, including lazy evaluation of embedded videos so they don’t block the page display.
The thumbnail bar now automatically groups pages if the
thumbnailGrouping setting is enabled - this is great for magazines and content that is optimized for two-page-display.
Outline elements defined in the PDF can contain font and color information. We now correctly parse and display such informations to ensure your document is displayed just as it would be in Acrobat.
PSPDFLibrary now allows you to preview text based on the FTS index.
Annotation hit testing now works on paths directly, which allows better selection in cases where multiple annotations are overlaid. Chances it simply does “the right thing” are a lot higher now. There’s also a new dialog which asks for the default username so we correctly can write this when storing data in the PDF. We try hard to pick a useful default, but you can of course customize or disable this.
We support cloud annotation borders. There’s no UI to create them yet, but documents which are configured to render clouds will correctly display in PSPDFKit as well. Callouts are a special subtype of free text annotations, and we support them now as well.
The API around digital signatures has been completely updated, the new architecture allows connecting external PKI hardware for the signing process.
Many UI widgets have been updated to support the new iOS 8 keyboards with non-standard heights. Sharing content via iMessage is now built-in. Embedded videos are now autostarted if this is configured in the PDF (we support the ActivationContext settings now for RichMedia objects). And there are a ton of performance improvements and of course many bug fixes.