Sketchbook, iOS 14 and Custom Fonts
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
As numerous other users have posted on this forum, the font picker in Sketchbook for iOS cannot currently access user-installed fonts on iOS 14. I'm writing as the co-developer of the iOS font management app iFont. We've been contacted by a number of users who've lost access to their custom fonts after upgrading to iOS 14, and I thought it might be helpful to share my view on what Sketchbook's developers need to do to fix this issue.
Suggested actions for Sketchbook's developers:
1. Add the Font entitement to the Sketchbook app, making sure to select 'Use Installed Fonts'.
2. Adopt UIFontPickerViewController in place of the custom font selection UI included in Sketchbook at present. (Developer team: please note the font picker can be embedded as a child view controller as normal. It doesn't require modal presentation, so your current approach of embedding the font picker in a popover would not need to change).
Lastly, from a compatibility perspective, the system font picker was added in iOS 13, so the existing font picker would need to be kept around for users on iOS 12 and earlier.
I hope the above is clear - and apologies if it seems presumptuous to provide instructions. That the changes needed are fairly straightforward, and iOS 14 has been out for two months, made me wonder if the issue wasn't understood by the development team.
The background
If it's of interest to readers, I've tried to summarise the technical background to this issue below.
Prior to iOS 13, the situation on iOS was as follows:
1. Apps could request a list of all installed fonts from the operating system without needing any special entitlements.
2. Users could install new fonts using configuration profiles.
In iOS 13, Apple added a new application programming interface (API) for installing fonts. The new API has a critical limitation - namely it can only be used by apps for fonts that come 'bundled' as part of the app. In addition, iOS 13 did not include fonts installed via this API in the list of all installed fonts given to other apps by default. To allow users to select these fonts, apps had to use the new system font picker, which runs in a separate process and does have access to the full list of installed fonts. Fonts installed via configuration profiles were not impacted by this change, so the situation was as follows:
1. Apps could request a list of pre-installed fonts and fonts installed via configuration profiles from the operating system without needing any special entitlements.
2. Apps could access fonts installed via the new API by adding an 'entitlement' to use installed fonts, and then using the system font picker.
3. Users could install new fonts using configuration profiles or apps that supported the new API.
iOS 14 went further, and now hides fonts installed via configuration profiles from the list of installed fonts unless apps' developers had added the necessary entitlement for their apps to access user-installed fonts. Since Sketchbook presumably hasn't done this, users have lost access to any fonts they'd installed via configuration profiles after updating.
Essentially Sketchbook doesn't appear to have been updated to deal with the changes introduced to fonts in iOS 13 and iOS 14. I'm hopefully it will be soon.
