Changing Dynamic Type settings in iOS can be done manually (Settings > General > Accessibility > Larger Text).
But this does not appear to work in the current Simulator (v9.3 at the time of writing), and doing so manually is not a solution where automation is required.
Question: Is there a way to launch an app with Dynamic Type settings to launch an app with larger font sizes?
Note: This is not only useful for UI testing, but also for the purpose of creating screenshots using Fastlane Snapshot with larger font sizes.
Although (to my knowledge) not documented, a launch argument can be used to define the initial Dynamic Type setting.
Key: UIPreferredContentSizeCategoryName
Value: One of the below
UICTContentSizeCategoryXS
UICTContentSizeCategoryS
UICTContentSizeCategoryM
UICTContentSizeCategoryL
UICTContentSizeCategoryXL
UICTContentSizeCategoryXXL
UICTContentSizeCategoryXXXL
UICTContentSizeCategoryAccessibilityM
UICTContentSizeCategoryAccessibilityL
UICTContentSizeCategoryAccessibilityXL
UICTContentSizeCategoryAccessibilityXXL
UICTContentSizeCategoryAccessibilityXXXL
Source of this undocumented key/values: GitHub.
A convenient way to do so is to add a launch argument to an Xcode scheme (add for example -UIPreferredContentSizeCategoryName UICTContentSizeCategoryXL
under Arguments Passed On Launch), and this setting will apply when you run the app in Xcode. You can create multiple schemes with different Dynamic Type settings to switch between them.
If the purpose is creating screenshots using Fastlane Snapshot, the equivalent code is as follows:
app.launchArguments += [ "-UIPreferredContentSizeCategoryName", "UICTContentSizeCategoryXL" ]
app.launch()
As of Xcode 8, there is a better option than the undocumented launch arguments: Accessibility Inspector. It is covered in this talk and can be found under Xcode > Open Developer Tool.
Update for Xcode 11+
There is a new Environment Overrides option. Find more information in this answer.
Before doing this in Accessibility Inspector, don't forget to turn on "Larger Text" in your simulated device's settings: General -> Accessibility -> Larger Font. Else, the Accessibility Inspector won't show the dynamic font option.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With