For PSPDFKit for macOS, we generally support n-1 versions of Apple’s macOS operating system. macOS is a fast-moving target, and Apple is rather aggressive with moving to newer versions. There’s also an important difference in behavior depending upon which SDK version the application is linked to:
- PSPDFKit 3 for macOS — made for Xcode 10.x (SDK 10.14), works with macOS 10.13/10.14. (v3.0-v3.2 still support macOS 10.12. Starting with v3.3+ only macOS 10.13+ is supported.)
- PSPDFKit 2 for macOS — made for Xcode 9.x (SDK 10.13), works with macOS 10.12/10.13
- PSPDFKit 1 for macOS — made for Xcode 8.x (SDK 10.12), works with macOS 10.12 (first release supports only the current macOS version)
In general, the most recent build will always require the most recent stable version of Xcode, so that we can utilize all improvements Apple is making on its tools and compiler infrastructure.
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 AppKit, 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 this warning, PSPDFKit 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/macos/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 framework. 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.