For PSPDFKit for iOS we generally support n-1 versions of Apple's iOS operating system. iOS is a fast-moving target and Apple is quite aggressive with moving to newer versions. There's also an important difference in behavior depending what SDK version the application is linked to.
- PSPDFKit 7 for iOS: Made for Xcode 9.x (SDK 11), works with iOS 9.x/10.x/11.x. iOS 9 will be dropped in Q1 2018.
- PSPDFKit 6 for iOS: Made for Xcode 8.x (SDK 10), works with iOS 9.x/10.x(11*)
- PSPDFKit 5 for iOS: Made for Xcode 7.x (SDK 9), works with iOS 8.x/9.x/(10*)
- PSPDFKit 4 for iOS: Made for Xcode 6.x (SDK 8), works with iOS 7.x/8.x/(9*)
- PSPDFKit 3 for iOS: Made for Xcode 5.x (SDK 7), works with iOS 6.x/7.x/(8*)
- PSPDFKit 2 for iOS: Made for Xcode 4.x (SDK 6), works with iOS 5.x/6.x
- PSPDFKit 1 for iOS: Made for Xcode 4.x (SDK 5), works with iOS 4.x/5.x
Unsure what version you currently use? Learn how you can identify the current version used.
Bitcode is included starting with PSPDFKit 5. Bitcode is architecture dependent and we ship bitcode slides for both armv7 and arm64. Since Bitcode is an intermediary format, it's larger and responsible for about 80% of our framework size. This code is automatically stripped in the App Store and can be easily removed manually if you do not yet support Bitcode or use enterprise installs.
In general, the most recent build will always require the most recent stable version of Xcode, so we can utilize all improvements Apple is making on their tools and compiler infrastructure.
The Base SDK is usually tied to a version of Xcode, which includes specific compiler and linker versions. Apple encodes the Base SDK into your application and frameworks often have behavior specific to a Base SDK version to ensure backwards compatibility. This is the main reason that PSPDFKit is tied to a specific version of Xcode. We use the latest compiler and language improvements and have a very sophisticated usage of UIKit - which means that we often have to tweak things so that everything runs perfectly whenever the Base SDK is updated.
The Deployment Target is the minimum version that is supported by your application.
(*) For previous version we go the extra route and try to make them work for most current versions as well (we improved code to make 5.5 work with iOS 10 and 4.4.x with iOS 9. This support is limited and some features will not work correctly. For example, the new iOS 9 multitasking support requires a lot of implementation changes and is known to not work with the legacy PSPDFKit 4.4.x)
If you see this warning, PSPDFKit detected that the Xcode version used is not the one that we recommend:
1 2 3 4 5
PSPDFKit was built to be linked with Xcode X.X. (X). Your application has been built and linked with a different version (X). This may result in undefined behavior and bugs and is not supported. We strongly recommend updating PSPDFKit to a newer version that matches your current Xcode version. See https://pspdfkit.com/guides/ios/current/announcements/version-support for details.
This is a conservative warning as Apple changes behavior based on the Base SDK, including minor versions. This might trigger bugs in either Apple's or PSPDFKit's frameworks. We error on the side of extreme caution and issue a developer-only warning. We do not block you from compiling a version of PSPDFKit with a newer version of the SDK, we just discourage it and print a warning.
PSPDFKit for iOS supports all available iOS devices and form factors and includes many adjustments to have optimal display for small and large screens: iPhone, iPhone Plus, iPod Touch, iPad, iPad Pro. (Binary ships with armv7/arm64/i386/x86_64)
iPhone 4S, iPad 2, iPad 3, iPad mini, and fifth-generation iPod Touch will not run iOS 10.
iPhone 5, iPad 4, and iPhone 5C will not run iOS 11. (32-bit hardware has been dropped completely)