For PSPDFKit for iOS and iPadOS, we generally support n-1 versions of Apple’s iOS operating system.
|PSPDFKit for iOS Version||Required Xcode Version||Supported iOS Versions|
|PSPDFKit 9.4||Xcode 11 (SDK 13)||iOS 12, 13|
|PSPDFKit 9.0 – 9.3.3||Xcode 11 (SDK 13)||iOS 11, 12, 13|
|PSPDFKit 8.3 – 8.5||Xcode 10 (SDK 12)||iOS 11, 12, (13*)|
|PSPDFKit 8.0 – 8.2.3||Xcode 10 (SDK 12)||iOS 10, 11, 12|
|PSPDFKit 7.6 – 7.7.2||Xcode 9 (SDK 11)||iOS 10, 11, (12*)|
|PSPDFKit 7.0 – 7.5.2||Xcode 9 (SDK 11)||iOS 9, 10, 11|
|PSPDFKit 6||Xcode 8 (SDK 10)||iOS 9, 10, (11*)|
|PSPDFKit 5||Xcode 7 (SDK 9)||iOS 8, 9, (10*)|
|PSPDFKit 4||Xcode 6 (SDK 8)||iOS 7, 8, (9*)|
|PSPDFKit 3||Xcode 5 (SDK 7)||iOS 6, 7, (8*)|
|PSPDFKit 2||Xcode 4 (SDK 6)||iOS 5, 6|
|PSPDFKit 1||Xcode 4 (SDK 5)||iOS 4, 5|
(*) Preliminary support for the next iOS version is usually added in the last release before the next major version of PSPDFKit.
As of June 2020, more than 93 percent of all active devices can use your product if your app supports iOS 12 upward. iOS 11 is no longer separately disclosed. See Mixpanel statistics or Apple’s official device statistics for details.
Architectures & Device Support
PSPDFKit supports ARM64 and x86_64, including bitcode for both architectures. Versions up to 8.2.3 included 32-bit architectures, ARMv7, and i386.
PSPDFKit for iOS supports all available iOS devices and form factors and includes many adjustments for optimal display for small and large screens.
Supporting iOS 13:
- iPad 5th gen, 6th gen, 7th gen (2017-2019)
- iPad Mini 4th gen, 5th gen (2015, 2019)
- iPad Air 2, 3rd gen (2014, 2019)
- iPad Pro 1, 2, 3, 4 (2015-2020)
- iPhone 11, 11 Pro, 11 Pro Max (2019)
- iPhone SE 2nd generation (2020)
- iPhone XS, XS Max, XR (2018)
- iPhone X, 8 and 8 Plus (2017)
- iPhone 7 and 7 Plus (2016)
- iPhone 6S and 6S Plus (2015)
- iPhone SE (2016)
- iPod Touch, 7th generation (2019)
Following Models support iOS 12 but not iOS 13:
- iPad Air (2013)
- iPad Mini 2th gen, 3th gen (2013, 2014)
- iPhone 5S (2013)
- iPhone 6 and 6 Plus (2014)
- iPod touch, 6th generation (2015)
In general, the most recent build will always require the most recent stable version of Xcode so that we can utilize all the improvements Apple is making on its tools and compiler infrastructure.
Unsure which version you currently use? Learn how you can identify your current version.
Bitcode is included as of PSPDFKit 5 for iOS. Bitcode is architecture dependent, and we ship one bitcode slice per architecture (64-bit ARM). Since bitcode is an intermediary format, it’s larger and is responsible for about 80 percent of our framework size. This code is automatically stripped in the App Store and can easily be removed manually if you do not yet support bitcode or use enterprise installs.
The base SDK is usually tied to a version of Xcode and 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 backward compatibility. This is the main reason 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 we often have to tweak things so that everything runs perfectly whenever the base SDK is updated.
The deployment target is the minimum version supported by your application. If you see the following warning, it means PSPDFKit has detected that the Xcode version used is not the one 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 err 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.
Troubleshooting 64-Bit Requirements
Apple required 64-bit binaries starting 1 February 2015. Support for 32-bit binaries was dropped with iOS 11. If your target deployment target is iOS 11 or later, you must have arm64 in your
Info.plist file. Make sure it contains the following entry:
1 2 3 4
<key>UIRequiredDeviceCapabilities</key> <array> <string>arm64</string> </array>
If you don’t, App Store Connect will report the error shown below.
ERROR ITMS-90502: “Invalid Bundle. Apps that only contain the arm64 slice must also have ‘arm64’ in the list of
UIRequiredDeviceCapabilities in Info.plist.”
Wikipedia’s List of iOS devices article also features an in-depth capability overview.